⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_55434.htm

📁 vc
💻 HTM
字号:
<p>
序号:55434 发表者:jackey2 发表日期:2003-10-09 19:54:12
<br>主题:CDatabase类如何添加到自己的程序中?
<br>内容:CDatabase类好象微软已经做好了,可是它怎样添加到自己VC++的程序中呢?<BR>怎样用呢?<BR>请指教,谢谢!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:hurtmanzc 回复日期:2003-10-09 21:20:50
<br>内容:打开头文件&#34;StdAfx.h&#34;,并在最后一个#include后面添加对&#34;afxdb.h&#34;的引用:#include &lt;afxdb.h&gt;.<BR><BR>一个CDatabase对象表示一个到数据源的连接,通过它可以操作数据源。应用程序可使用多个CDatabase对象:构造一个对象并调用OpenEx()成员函数打开一个连接。接着构造CRecordSet对象以操作连接的数据源,并向CDatabase对象传递记录集构造程序指针。完成使用后用Close()成员函数销毁CDatabase对象。一般情况下并不需要直接使用CDatabase对象,因为CRecordSet对象可以实现大多数的功能。但是在进行事务处理时,CDatabase就起到关键作用。事务(Transaction)指的是将一系列对数据源的更新放在一起,同时提交或一个也不提交,为的是确保多用户对数据源同时操作时的数据正确性。<BR><BR>要建立与数据源的连接,首先应构造一个CDatabase对象,然后再调用CDatabase的Open成员函数.Open函数负责建立连接,其声明为<BR><BR>virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = “ODBC;”, BOOL bUseCursorLib = TRUE ); throw( CDBException, CMemoryException );<BR><BR> <BR><BR>参数lpszDSN指定了数据源名(构造数据源的方法将在后面介绍),在lpszConnect参数中也可包括数据源名,此时lpszDSN必需为NULL,若在函数中未提供数据源名且使lpszDSN为NULL,则会显示一个数据源对话框,用户可以在该对话框中选择一个数据源.参数bExclusive说明是否独占数据源,由于目前版本的类库还不支持独占方式,故该参数的值应该是FALSE,这说明数据源是被共享的.参数bReadOnly若为TRUE则对数据源的连接是只读的.参数lpszConnect指定了一个连接字符串,连接字符串中可以包括数据源名、用户帐号(ID)和口令等信息,字符串中的"ODBC"表示要连接到一个ODBC数据源上.参数bUseCursorLib若为TRUE,则会装载光标库,否则不装载,快照需要光标库,动态集不需要光标库. 若连接成功,函数返回TRUE,若返回FALSE,则说明用户在数据源对话框中按了Cancel按钮。若函数内部出现错误,则框架会产生一个异常。<BR><BR><BR>下面是一些调用Open函数的例子。<BR><BR> <BR><BR>CDatabase m_db; //在文档类中嵌入一个CDatabase对象<BR><BR>//在连接数据源的同时指定了用户帐号和口令<BR><BR>m_db.Open(NULL,FALSE,FALSE,&#34;ODBC;DSN=Student Registration;UID=ZYF;PWD=1234&#34;);<BR><BR>m_db.Open(NULL); //将弹出一个数据源对话框<BR><BR> <BR><BR><BR>要从一个数据源中脱离,可调用函数Close。在脱离后,可以再次调用Open函数来建立一个新的连接.调用IsOpen可判断当前是否有一个连接,调用GetConnect可返回当前的连接字符串。函数的声明为<BR><BR>virtual void Close( );<BR><BR>BOOL IsOpen( ) const; //返回TRUE则表明当前有一个连接<BR><BR>const CString&amp; GetConnect( ) const;<BR><BR>CDatabase的析构函数会调用Close,所以只要删除了CDatabase对象就可以与数据源脱离。<BR><BR> <BR><BR>  <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:jackey2 回复日期:2003-10-10 12:56:03
<br>内容:非常感谢hurtmanzc,这些内容你是怎么学来的?我有几本资料<MFC程序设计><VC数据库高级编程>和几本C++的书都没有介绍。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -