📄 chap10_4.htm
字号:
<html>
<head>
<title>10.4 CDatabase类</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body link="#3973DE" alink="#3973DE">
<font SIZE="5"><b><div align="center"><center>
<table border="0" width="615" cellspacing="0" cellpadding="0">
<tr>
</b><td><div align="center"><center><table border="0" width="615" cellpadding="0" cellspacing="0" height="20">
<tr>
<td width="377" bgcolor="#15397D" height="20"></td>
<td width="238" bgcolor="#000000" height="20"><p align="right"></font><span style="text-decoration: none"><a href="../../index.htm"><font color="#FFFFFF">电脑报Visual
C++网络教程</font></a></span></td>
</tr>
</table>
</center></div><font FACE="Times New Roman" SIZE="3"><b><p ALIGN="CENTER"></b></font><font color="#3973DE" FACE="Times New Roman" size="4">10.4 CDatabase</font><font color="#3973DE" size="4">类</font><font FACE="Times New Roman" size="4"></p>
</font><font size="4"><p ALIGN="JUSTIFY"></font><font SIZE="3">要建立与数据源的连接,首先应构造一个</font><font FACE="Times New Roman" SIZE="3">CDatabase</font><font SIZE="3">对象,然后再调用</font><font FACE="Times New Roman" SIZE="3">CDatabase</font><font SIZE="3">的</font><font FACE="Times New Roman" SIZE="3">Open</font><font SIZE="3">成员函数.</font><font FACE="Times New Roman" SIZE="3">Open</font><font SIZE="3">函数负责建立连接,其声明为</font><font FACE="Times New Roman" SIZE="3"></p>
<blockquote>
<blockquote>
<p ALIGN="JUSTIFY">virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL
bReadOnly = FALSE, LPCTSTR lpszConnect = </font><font SIZE="3">“</font><font FACE="Times New Roman" SIZE="3">ODBC;</font><font SIZE="3">”</font><font FACE="Times New Roman" SIZE="3">, BOOL bUseCursorLib = TRUE ); throw( CDBException,
CMemoryException );</p>
</font>
</blockquote>
</blockquote>
<p><font SIZE="3"> </p>
<p ALIGN="JUSTIFY">参数</font><font FACE="Times New Roman" SIZE="3">lpszDSN</font><font SIZE="3">指定了数据源名(构造数据源的方法将在后面介绍),在</font><font FACE="Times New Roman" SIZE="3">lpszConnect</font><font SIZE="3">参数中也可包括数据源名,此时</font><font FACE="Times New Roman" SIZE="3">lpszDSN</font><font SIZE="3">必需为</font><font FACE="Times New Roman" SIZE="3">NULL</font><font SIZE="3">,若在函数中未提供数据源名且使</font><font FACE="Times New Roman" SIZE="3">lpszDSN</font><font SIZE="3">为</font><font FACE="Times New Roman" SIZE="3">NULL</font><font SIZE="3">,则会显示一个数据源对话框,用户可以在该对话框中选择一个数据源.参数</font><font FACE="Times New Roman" SIZE="3">bExclusive</font><font SIZE="3">说明是否独占数据源,由于目前版本的类库还不支持独占方式,故该参数的值应该是</font><font FACE="Times New Roman" SIZE="3">FALSE</font><font SIZE="3">,这说明数据源是被共享的.参数</font><font FACE="Times New Roman" SIZE="3">bReadOnly</font><font SIZE="3">若为</font><font FACE="Times New Roman" SIZE="3">TRUE</font><font SIZE="3">则对数据源的连接是只读的.参数</font><font FACE="Times New Roman" SIZE="3">lpszConnect</font><font SIZE="3">指定了一个连接字符串,连接字符串中可以包括数据源名、用户帐号</font><font FACE="Times New Roman" SIZE="3">(ID)</font><font SIZE="3">和口令等信息,字符串中的"</font><font FACE="Times New Roman" SIZE="3">ODBC</font><font SIZE="3">"表示要连接到一个</font><font FACE="Times New Roman" SIZE="3">ODBC</font><font SIZE="3">数据源上.参数</font><font FACE="Times New Roman" SIZE="3">bUseCursorLib</font><font SIZE="3">若为</font><font FACE="Times New Roman" SIZE="3">TRUE</font><font SIZE="3">,则会装载光标库,否则不装载,快照需要光标库,动态集不需要光标库.
若连接成功,函数返回</font><font FACE="Times New Roman" SIZE="3">TRUE</font><font SIZE="3">,若返回</font><font FACE="Times New Roman" SIZE="3">FALSE</font><font SIZE="3">,则说明用户在数据源对话框中按了</font><font FACE="Times New Roman" SIZE="3">Cancel</font><font SIZE="3">按钮。若函数内部出现错误,则框架会产生一个异常。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">下面是一些调用</font><font FACE="Times New Roman" SIZE="3">Open</font><font SIZE="3">函数的例子。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">CDatabase m_db; //</font><font SIZE="3">在文档类中嵌入一个</font><font FACE="Times New Roman" SIZE="3">CDatabase</font><font SIZE="3">对象</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">//</font><font SIZE="3">连接到一个名为"</font><font FACE="Times New Roman" SIZE="3">Student Registration</font><font SIZE="3">"的数据源</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">m_db.Open("Student Registration"); </p>
<p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">//</font><font SIZE="3">在连接数据源的同时指定了用户帐号和口令</p>
<blockquote>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">m_db.Open(NULL,FALSE,FALSE,"ODBC;DSN=Student
Registration;UID=ZYF;PWD=1234");</p>
<p ALIGN="JUSTIFY">m_db.Open(NULL); //</font><font SIZE="3">将弹出一个数据源对话框</font></p>
</blockquote>
<p><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">要从一个数据源中脱离,可调用函数</font><font FACE="Times New Roman" SIZE="3">Close</font><font SIZE="3">。在脱离后,可以再次调用</font><font FACE="Times New Roman" SIZE="3">Open</font><font SIZE="3">函数来建立一个新的连接.调用</font><font FACE="Times New Roman" SIZE="3">IsOpen</font><font SIZE="3">可判断当前是否有一个连接,调用</font><font FACE="Times New Roman" SIZE="3">GetConnect</font><font SIZE="3">可返回当前的连接字符串。函数的声明为</p>
<blockquote>
<blockquote>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">virtual void Close( );</p>
<p ALIGN="JUSTIFY">BOOL IsOpen( ) const; //</font><font SIZE="3">返回</font><font FACE="Times New Roman" SIZE="3">TRUE</font><font SIZE="3">则表明当前有一个连接</p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY">const CString&
GetConnect( ) const;</p>
</blockquote>
</blockquote>
<p ALIGN="JUSTIFY">CDatabase</font><font SIZE="3">的析构函数会调用</font><font FACE="Times New Roman" SIZE="3">Close</font><font SIZE="3">,所以只要删除了</font><font FACE="Times New Roman" SIZE="3">CDatabase</font><font SIZE="3">对象就可以与数据源脱离。</font><font FACE="Times New Roman" SIZE="3"></p>
</font><div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="615">
<tr>
<td><a href="chap10_3.htm">上一页</a></td>
<td><p align="right"><a href="chap10_5.htm">下一页</a></td>
</tr>
</table>
</center></div><font SIZE="5"><hr noshade color="#3973DE" size="1">
<p align="center"></font><font size="2" color="#000000">本教程由<a href="http://vcdynasty.yeah.net">Visual C++王朝(Where programmers come together)</a>协助制作<br>
未经许可,请勿以任何形式复制</font></td>
<b>
</tr>
</table>
</center></div>
<p ALIGN="CENTER"></b><font SIZE="5"> </font><font FACE="Times New Roman" SIZE="5"></p>
</font><font FACE="Times New Roman" SIZE="3">
<p></font><b><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
</font></b>
<p><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p></font> </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -