当前位置: 首页 > 图文教程 > 开发语言 > VC++ > VC++:小编谈VC++中 CDatabase类的那些事

VC++
在类VC的界面实现中加入目录树
软件换肤技术在 BCB 中的实现
利用非模窗口生成MDI介面
报表输出轻松搞定
Windows 中不规则窗体的编程实现
解说Win32的窗口子类化
使用测试优先方法开发用户界面
一个简单的登录对话框的实现
一个简单的日记本程序
从资源中加载皮肤
一个在RichEdit中添加表情图象的类
ActiveSkin 4.3 软件换肤在VC中的实现
一种另类“关于(About)”对话框的动态显示方法
对话框打印预览及打印
关于如何换肤、子类化的解决方案
制作 MSN、QQ 的消息提示窗口
如何对 BCGControlBarPro 进行换肤
定制个性化的对话框窗口类
改变窗口中的光标形状
更新MFC中的视图,跟踪.NET Framework中的事件

VC++:小编谈VC++中 CDatabase类的那些事


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 461 ::
收藏到网摘: n/a

对于数据库的连接,我想大家对CDatabase都不陌生,所以下面我总结下CDatabase的具体使用,希望能够带给大家帮助。

要建立与数据源的连接,首先应构造一个CDatabase对象,然后再调用CDatabaseOpen成员函数.Open函数负责建立连接,其声明为

 

virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = “ODBC;”, BOOL bUseCursorLib = TRUE ); throw( CDBException, CMemoryException );

 

  参数lpszDSN指定了数据源名,在lpszConnect参数中也可包括数据源名,此时lpszDSN必需为NULL,若在函数中未提供数据源名且使lpszDSNNULL,则会显示一个数据源对话框,用户可以在该对话框中选择一个数据源.参数bExclusive说明是否独占数据源,由于目前版本的类库还不支持独占方式,故该参数的值应该是FALSE,这说明数据源是被共享的.参数bReadOnly若为TRUE则对数据源的连接是只读的.参数lpszConnect指定了一个连接字符串,连接字符串中可以包括数据源名、用户帐号(ID)和口令等信息,字符串中的"ODBC"表示要连接到一个ODBC数据源上.参数bUseCursorLib若为TRUE,则会装载光标库,否则不装载,快照需要光标库,动态集不需要光标库. 若连接成功,函数返回TRUE,若返回FALSE,则说明用户在数据源对话框中按了Cancel按钮。若函数内部出现错误,则框架会产生一个异常。

 

  下面是一些调用Open函数的例子。

 

CDatabase m_db; //在文档类中嵌入一个CDatabase对象

 

//连接到一个名为"Student Registration"的数据源

 

m_db.Open("Student Registration");

 

//在连接数据源的同时指定了用户帐号和口令

 

m_db.Open(NULL,FALSE,FALSE,"ODBC;DSN=Student Registration;UID=ZYF;PWD=1234");

 

m_db.Open(NULL); //将弹出一个数据源对话框

 

 

 

  要从一个数据源中脱离,可调用函数Close。在脱离后,可以再次调用Open函数来建立一个新的连接.调用IsOpen可判断当前是否有一个连接,调用GetConnect可返回当前的连接字符串。函数的声明为

 

virtual void Close( );

 

BOOL IsOpen( ) const; //返回TRUE则表明当前有一个连接

 

const CString& GetConnect( ) const;

 

  CDatabase的析构函数会调用Close,所以只要删除了CDatabase对象就可以与数据源脱离。