?? 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">
<link rel="stylesheet" href="../../../cpcw.css"></head>
<body link="#3973DE" alink="#3973DE" background="../../bg.gif">
<div align="center"><center>
<table width="85%" border="0">
<tr bgcolor="#FFFFFF">
<td>
<div align="center">
<center>
</center>
</div>
<p align="CENTER"><b><font color="red" face="Times New Roman">10.4 CDatabase</font><font color="red">類</font></b></p>
<p align="JUSTIFY"><font size="4"></font> 要建立與數據源的連接,首先應構造一個CDatabase對象,然后再調用CDatabase的Open成員函數.Open函數負責建立連接,其聲明為</p>
<blockquote>
<blockquote>
<p align="JUSTIFY">virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive
= FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = “ODBC;”,
BOOL bUseCursorLib = TRUE ); throw( CDBException, CMemoryException
);</p>
</blockquote>
</blockquote>
<p> </p>
<p align="JUSTIFY"> 參數lpszDSN指定了數據源名(構造數據源的方法將在后面介紹),在lpszConnect參數中也可包括數據源名,此時lpszDSN必需為NULL,若在函數中未提供數據源名且使lpszDSN為NULL,則會顯示一個數據源對話框,用戶可以在該對話框中選擇一個數據源.參數bExclusive說明是否獨占數據源,由于目前版本的類庫還不支持獨占方式,故該參數的值應該是FALSE,這說明數據源是被共享的.參數bReadOnly若為TRUE則對數據源的連接是只讀的.參數lpszConnect指定了一個連接字符串,連接字符串中可以包括數據源名、用戶帳號(ID)和口令等信息,字符串中的"ODBC"表示要連接到一個ODBC數據源上.參數bUseCursorLib若為TRUE,則會裝載光標庫,否則不裝載,快照需要光標庫,動態集不需要光標庫.
若連接成功,函數返回TRUE,若返回FALSE,則說明用戶在數據源對話框中按了Cancel按鈕。若函數內部出現錯誤,則框架會產生一個異常。</p>
<p align="JUSTIFY"> 下面是一些調用Open函數的例子。</p>
<p align="JUSTIFY">CDatabase m_db; //在文檔類中嵌入一個CDatabase對象</p>
<p align="JUSTIFY">//連接到一個名為"Student Registration"的數據源</p>
<p align="JUSTIFY">m_db.Open("Student Registration"); </p>
<p align="JUSTIFY">//在連接數據源的同時指定了用戶帳號和口令</p>
<blockquote>
<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); //將彈出一個數據源對話框</p>
</blockquote>
<p> </p>
<p align="JUSTIFY"> 要從一個數據源中脫離,可調用函數Close。在脫離后,可以再次調用Open函數來建立一個新的連接.調用IsOpen可判斷當前是否有一個連接,調用GetConnect可返回當前的連接字符串。函數的聲明為</p>
<blockquote>
<blockquote>
<p align="JUSTIFY">virtual void Close( );</p>
<p align="JUSTIFY">BOOL IsOpen( ) const; //返回TRUE則表明當前有一個連接</p>
<p align="JUSTIFY">const CString& GetConnect( ) const;</p>
</blockquote>
</blockquote>
<p align="JUSTIFY"> CDatabase的析構函數會調用Close,所以只要刪除了CDatabase對象就可以與數據源脫離。</p>
<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>
<p><a href="http://www.cpcw.com">電腦報首頁</a> <a href="../../index.htm">網絡學院首頁</a></p>
</center>
</div>
<font size="5">
<hr noshade color="#3973DE" size="1">
</font>
<p align="center"><font size="5"></font><font size="2" color="#000000">本教程由<a href="http://vcdynasty.yeah.net">Visual
C++王朝(Where programmers come together)</a>協助制作<br>
未經許可,請勿以任何形式復制</font>
</td>
</tr>
</table>
</center>
</div>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -