AdoConnection.h
上传用户:xutong0099
上传日期:2009-03-19
资源大小:29k
文件大小:4k
源码类别:

数据库系统

开发平台:

Visual C++

  1. /*########################################################################
  2. 【使用说明】:
  3. 1. 必须在下面指明 msado15.dll 的全路径, 一般在 "C:Program Files
  4.    Common FilesSystemADO" 目录下.
  5. 2. 在使用本类之前必须要初始化 COM 环境, 可以调用 CoInitialize(NULL)  
  6.    来初始化, 用 CoUninitialize() 释放;
  7. 3. 在使用记录集对象前必须先调用 CAdoConnection::Open() 连接数据库,
  8.    连接后可给多个 CAdoRecordSet 对象使用, 用完后须关闭数据库.
  9. 4. 使用记录集执行SQL语句之前, 要使用构建方法或调用 SetAdoConnection() 
  10.    关联到连接对象.
  11. 5. 在编译过程中不用理会下面的编译警告:
  12.    warning: unary minus operator applied to unsigned type, result
  13.    still unsigned
  14.    如果不想此警告出现,可以在 StdAfx.h 文件中加入这样一行代码以禁止
  15.    此警告:  #pragma warning(disable:4146) 
  16.   ########################################################################*/
  17. #if !defined(_ANYOU_COOL_ADO_H)
  18. #define _ANYOU_COOL_ADO_H
  19. #if _MSC_VER > 1000
  20. #pragma once
  21. #endif 
  22.  
  23. // 导入 ado 库 -----------------------------------------------------------
  24. #pragma warning(disable:4146)
  25. #import "C:Program FilesCommon FilesSystemADOmsado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
  26. #pragma warning(default:4146)
  27. using namespace ADODB;  
  28. #include <icrsint.h>
  29. class CAdoConnection;
  30. #include "AdoRecordSet.h"
  31. #include "AdoCommand.h"
  32. // 数值类型转换 -----------------------------------
  33. COleDateTime vartodate(const _variant_t& var);
  34. COleCurrency vartocy(const _variant_t& var);
  35. bool vartobool(const _variant_t& var);
  36. BYTE vartoby(const _variant_t& var);
  37. short vartoi(const _variant_t& var);
  38. long vartol(const _variant_t& var);
  39. double vartof(const _variant_t& var);
  40. CString vartostr(const _variant_t& var);
  41. /*########################################################################
  42.   ------------------------------------------------
  43.     CAdoConnection class
  44.   ------------------------------------------------
  45.   ########################################################################*/
  46. class CAdoConnection
  47. {
  48. // 构建/析构 ------------------------------------------
  49. public:
  50. CAdoConnection();
  51. virtual ~CAdoConnection();
  52. protected:
  53. void Release();
  54. // 属性 -----------------------------------------------
  55. public:
  56. // 连接对象 ----------------------------------
  57. _ConnectionPtr& GetConnection() {return m_pConnection;};
  58. // 异常信息 ----------------------------------
  59. CString GetLastErrorText();
  60. ErrorsPtr GetErrors();
  61. ErrorPtr  GetError(long index);
  62. // 连接字串 ----------------------------------
  63. CString GetConnectionText() {return m_strConnect;}
  64. // 连接信息 ----------------------------------
  65. CString GetProviderName();
  66. CString GetVersion();
  67. CString GetDefaultDatabase();
  68. // 连接状态 ----------------------------------
  69. BOOL IsOpen();
  70. long GetState();
  71. // 连接模式 ----------------------------------
  72. ConnectModeEnum GetMode();
  73. BOOL SetMode(ConnectModeEnum mode);
  74. // 连接时间 ----------------------------------
  75. long GetConnectTimeOut();
  76. BOOL SetConnectTimeOut(long lTime = 5);
  77. // 数据源信息 -------------------------------
  78. _RecordsetPtr OpenSchema(SchemaEnum QueryType);
  79. // 操作 -----------------------------------------------
  80. public:
  81. // 数据库连接 --------------------------------
  82. BOOL ConnectToOracle(CString server, CString name, CString password, long lOptions =adConnectUnspecified);
  83. BOOL Open(LPCTSTR lpszConnect =_T(""), long lOptions = adConnectUnspecified);
  84. BOOL ConnectSQLServer(CString dbsrc, CString dbname, CString user, CString pass, long lOptions = adConnectUnspecified);
  85. BOOL ConnectAccess(CString dbpath, CString pass = _T(""), long lOptions = adConnectUnspecified);
  86. BOOL OpenUDLFile(LPCTSTR strFileName, long lOptions = adConnectUnspecified);
  87. void Close();
  88. // 处理 -----------------------------------------------
  89. public:
  90. // 事务处理 ----------------------------------
  91. long BeginTrans();
  92. BOOL RollbackTrans();
  93. BOOL CommitTrans();
  94. // 执行 SQL 语句 ------------------------------
  95. _RecordsetPtr Execute(LPCTSTR strSQL, long lOptions = adCmdText);
  96. BOOL Cancel();
  97. // 数据 -----------------------------------------------
  98. protected:
  99. // _ConnectionPtr  m_adoConnection;
  100. CString m_strConnect;
  101. _ConnectionPtr m_pConnection;
  102. };
  103. #endif // !defined(_ANYOU_COOL_ADO_H)