第一篇:VC++中MFC用Ado連接數(shù)據(jù)庫小結(jié)
VC++中MFC用Ado連接數(shù)據(jù)庫小結(jié)
VC++中使用MFC通過ADO連接數(shù)據(jù)庫方法小結(jié)(不包括異常的捕捉)這里主要講MFC與SQL2000數(shù)據(jù)庫的連接。1.在StdAfx.h頭文件中加入此句子
#import “c:program filescommon filessystemadomsado15.dll” no_namespace rename(“EOF”,“adoEOF”)2.在App類的InitInstance()函數(shù)中加入 ::CoInitialize(NULL);//表示com庫的初始化
鼠標(biāo)右鍵點擊App類名添加虛函數(shù)ExitInstance(),在其中加入代碼 ::CoUninitialize();//釋放com庫。3.獲取連接字符串。
最簡單的方法就是新建一個.txt文件,將其后綴名改為.udl,雙擊它,在“提供程序”標(biāo)簽頁中選擇“Microsoft OLE DB Provide fo Sql Server”,然后在“連接”標(biāo)簽頁選擇填寫服務(wù)器、數(shù)據(jù)庫、登陸方式等信息,最后按“確定”。連接完成之后,將其用寫字板打開,第三行信息,如“Provider=SQLOLEDB.1;Integrated
Security=SSPI;Persist
Security Info=False;Initial Catalog=RuleDB_Data;Data Source=PYE”即為連接字符串。注意,若數(shù)據(jù)庫位于本機,在選擇填寫服務(wù)器一欄可直接填寫(local),記得一定要加括號。4.連接數(shù)據(jù)庫
在這里引入一個編寫好的封裝類:ADOConn。該類封裝了連接數(shù)據(jù)庫,對數(shù)據(jù)庫進行添加、刪除、修改操作及獲取查詢記錄集操作的方法。用戶可直接使用,這個類的頭文件和cpp文件內(nèi)容將在本文最后給出。
在一個工程里加入該類的方法為:把該類的頭文件和cpp文件拷貝到工程所在的文件夾里。然后在工程的工作區(qū)選擇Project->Add to Project->Files,將這兩個文件選擇加入。之后,就可以在程序里應(yīng)用這個類了。
首先在要用到數(shù)據(jù)庫的類的頭文件里設(shè)一個該類的對象,即加入代碼:ADOConn m_Ado;注意:記得要先在最前面加入#include “ADOConn.h”。
在應(yīng)用這個對象對數(shù)據(jù)庫進行操作之前,先對其初始化: m_Ado.OnInitADOConn(strConnect);其中strConnect即為上面獲取的連接字符串。
若要獲取數(shù)據(jù)庫中的部分記錄集,用m_Ado.GetRecordSet(strSql);其中strSql中存放查詢語句,查詢結(jié)果存放于m_Ado.m_pRecordset中,然后可用GetCollect()函數(shù)挨個獲取所有符合條件的記錄的各個字段的值。用完后記得用m_Ado.m_pRecordset.Close()關(guān)閉記錄集。
添加、修改、刪除操作,均用 m_Ado.ExecuteSQL(strSql);語句完成。
此外,若同時需要多種記錄集,則還需在要用到數(shù)據(jù)庫的類的頭文件里添加記錄集的對象,即_RecordsetPtr m_pRecordset;m_pRecordset在用之前也需初始化,初始化語句為: m_pRecordset.CreateInstance(__uuidof(Recordset));,同樣的,每回記錄集用完之后也得用Close()函數(shù)關(guān)閉。5.若在數(shù)據(jù)庫應(yīng)用程序編譯時遇到102個錯誤,則可把Debug文件夾刪了重新編譯即可。ADOConn類的頭文件:
#if!defined(AFX_ADOCONN_H__2B491720_FA04_4800_B616_219E55ABEA46__INCLUDED_)#define AFX_ADOCONN_H__2B491720_FA04_4800_B616_219E55ABEA46__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class ADOConn : public CObject { public: //添加一個指向Connection對象的指針: _ConnectionPtr m_pConnection;//添加一個指向Recordset對象的指針: _RecordsetPtr m_pRecordset;char error[1024];public: _ConnectionPtr& GetConnPtr(){return m_pConnection;} _RecordsetPtr& GetRecoPtr(){return m_pRecordset;} public: //事務(wù)回滾
BOOL RollbackTrans();//遞交 事務(wù) BOOL CommitTrans();//事務(wù)開始 BOOL BeginTrans();BOOL adoBOF();//頭 BOOL adoEOF();//尾 BOOL MoveNext();//下一個 BOOL CloseTable();//關(guān)閉表
BOOL CloseADOConnection();//關(guān)閉連接
BOOL GetCollect(LPCTSTR Name,CString &lpDest);//獲取某個字段的值 //執(zhí)行SQL語句 包含update delete insert BOOL ExecuteSQL(LPCTSTR lpszSQL);//初始化連接數(shù)據(jù)庫
BOOL OnInitADOConn(LPCTSTR ConnStr);// 執(zhí)行select語句 獲取記錄集
_RecordsetPtr& GetRecordSet(LPCTSTR lpszSQL);ADOConn();virtual ~ADOConn();};#endif //!defined(AFX_ADOCONN_H__2B491720_FA04_4800_B616_219E55ABEA46__INCLUDED_)class CADOException : public CException { public: // Constructor CADOException(char* pchMessage);public: ~CADOException(){} CString m_strMessage;virtual BOOL GetErrorMessage(LPTSTR lpstrError, UINT nMaxError, PUINT pnHelpContext = NULL);private: int m_nError;};ADOConn類的cpp文件: #include “stdafx.h” #include “ADOConn.h” #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__;#define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// ADOConn::ADOConn(){ memset(error,0,1024);} ADOConn::~ADOConn(){ } ////////////////////////////////////////////////////////////////////// // CADOException Class ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CADOException::CADOException(char* pchMessage){ m_strMessage = pchMessage;m_nError = GetLastError();} BOOL CADOException::GetErrorMessage(LPTSTR
lpstrError,UINT nMaxError,PUINT pnHelpContext /*= NULL*/){
char text[200];if(m_nError == 0){ wsprintf(text, “%s error”,(const char*)m_strMessage);} else { wsprintf(text, “%s error #%d”,(const char*)m_strMessage, m_nError);} strncpy(lpstrError, text, nMaxError-1);return TRUE;} BOOL ADOConn::OnInitADOConn(LPCTSTR ConnStr){ ::CoInitialize(NULL);try { // 創(chuàng)建Connection對象
m_pConnection.CreateInstance(“ADODB.Connection”);// 設(shè)置連接字符串,必須是BSTR型或者_(dá)bstr_t類型 _bstr_t strConnect
=
_bstr_t(ConnStr);//“Provider=SQLOLEDB;Server=127.0.0.1;Database=EventLogg;uid=event;pwd=event;”;m_pConnection->Open(strConnect,“",”“,adModeUnknown);return TRUE;} // 捕捉異常 catch(_com_error e){ // 顯示錯誤信息 TRACE(e.Description());// sprintf(error,”連接數(shù)據(jù)庫失敗 請檢查連接字符串rn當(dāng)前連接字符串為:%s“,ConnStr);// throw new CADOException(error);throw new CADOException(”連接數(shù)據(jù)庫失敗“);} } //執(zhí)行SQL語句 包含update delete insert BOOL ADOConn::ExecuteSQL(LPCTSTR lpszSQL){ // _variant_t RecordsAffected;try { // Connection對象的Execute方法:(_bstr_t CommandText, // VARIANT * RecordsAffected, long Options)
// 其中CommandText是命令字串,通常是SQL命令。// 參數(shù)RecordsAffected是操作完成后所影響的行數(shù),// 參數(shù)Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名
// adCmdProc-存儲過程;adCmdUnknown-未知
m_pConnection->Execute(_bstr_t(lpszSQL),NULL,adCmdText);return true;} catch(_com_error e){ TRACE(e.Description());// sprintf(error,”t執(zhí)行SQL語句失敗rn SQL語句為:%s“,lpszSQL);// throw new CADOException(error);throw new CADOException(”執(zhí)行SQL語句失敗“);} } //執(zhí)行SELECT語句,獲得結(jié)果集,結(jié)果集放在m_pRecordset中 _RecordsetPtr& ADOConn::GetRecordSet(LPCTSTR lpszSQL){ try { // 創(chuàng)建記錄集對象
m_pRecordset.CreateInstance(__uuidof(Recordset));// 取得表中的記錄
m_pRecordset->Open(_bstr_t(lpszSQL),m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);} // 捕捉異常 catch(_com_error e){ // 顯示錯誤信息 TRACE(e.Description());// sprintf(error,”t執(zhí)行SELECT語句失敗rnSELECT語句為:%s“,lpszSQL);// throw new CADOException(error);throw new CADOException(”執(zhí)行SELECT語句失敗“);} // 返回記錄集 return m_pRecordset;} //獲取某個字段的值
BOOL ADOConn::GetCollect(LPCTSTR Name,CString &lpDest){ VARIANT vt;try { vt = m_pRecordset->GetCollect(Name);/* _bstr_t bstr =(_bstr_t)vt;if(lpDest!= ”“){ strcpy(lpDest,bstr);}*/ if(vt.vt!=VT_NULL)lpDest=(LPCSTR)_bstr_t(vt);else lpDest=”“;} catch(_com_error e){ TRACE(e.Description());sprintf(error,”獲取字段:%s值失敗“,Name);throw new CADOException(error);} return TRUE;} //關(guān)閉數(shù)據(jù)庫
BOOL ADOConn::CloseADOConnection(){ try { m_pConnection->Close();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”關(guān)閉數(shù)據(jù)庫失敗“);} return TRUE;} //關(guān)表
BOOL ADOConn::CloseTable(){ try { m_pRecordset->Close();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”關(guān)閉表失敗“);} return TRUE;} //下一個
BOOL ADOConn::MoveNext(){ try { m_pRecordset->MoveNext();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”結(jié)果集移向下一個失敗“);} return TRUE;} //尾
BOOL ADOConn::adoEOF(){ return m_pRecordset->adoEOF;} //頭
BOOL ADOConn::adoBOF(){ return m_pRecordset->BOF;} //事務(wù)開始
BOOL ADOConn::BeginTrans(){ try { m_pConnection->BeginTrans();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”事務(wù)開始失敗“);}
return TRUE;} //遞交事務(wù)
BOOL ADOConn::CommitTrans(){ try { m_pConnection->CommitTrans();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”遞交事務(wù)失敗“);} return TRUE;} //事務(wù)回滾
BOOL ADOConn::RollbackTrans(){ try { m_pConnection->RollbackTrans();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”回滾事務(wù)失敗");} return TRUE;}
第二篇:ADO編程模型之VB數(shù)據(jù)庫操作小結(jié)
ADO編程模型之VB數(shù)據(jù)庫操作小結(jié)
使用ADO編程模型需添加ADO對象類庫的“引用”----“Microsoft ActiveX Data Objects 2.x Library” ADO之VB數(shù)據(jù)庫操作主要包括讀、寫、修改及刪除等操作,不論是進行什么數(shù)據(jù)庫操作都必須首先連接到數(shù)據(jù)庫。
一、連接到數(shù)據(jù)庫
1、連接到SQL數(shù)據(jù)庫:
通過ADO的Connection對象可實現(xiàn)VB與SQL數(shù)據(jù)庫的連接。一般方法如下:
Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象
cnn.ConnectionString = “Provider=SQLOLEDB.1;Password=密碼;User ID=用戶名;Initial Catalog=SQL數(shù)據(jù)庫文件;Data Source= localhost;”
'指定提供者,設(shè)置數(shù)據(jù)源 cnn.Open
‘打開到數(shù)據(jù)庫的連接 ……..cnn.Close
‘關(guān)閉到數(shù)據(jù)庫的連接 或者:
Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象
cnn.Open “Provider=SQLOLEDB.1;Password=密碼;User ID=用戶名;Initial Catalog=SQL數(shù)據(jù)庫文件;Data Source= localhost;”
‘打開到數(shù)據(jù)庫的連接 ……..cnn.Close
‘關(guān)閉到數(shù)據(jù)庫的連接
2、連接到ACCESS數(shù)據(jù)庫:
通過ADO的Connection對象可實現(xiàn)VB與ACCESS數(shù)據(jù)庫的連接。一般方法如下:
Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象
cnn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS數(shù)據(jù)庫文件.MDB” '指定提供者,設(shè)置數(shù)據(jù)源
cnn.Open
‘打開到數(shù)據(jù)庫的連接 ……..cnn.Close
‘關(guān)閉到數(shù)據(jù)庫的連接 或者: Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=ACCESS
數(shù)據(jù)庫文件.MDB”
‘打開到數(shù)據(jù)庫的連接 ……..cnn.Close
‘關(guān)閉到數(shù)據(jù)庫的連接
二、讀數(shù)據(jù)庫操作
讀數(shù)據(jù)庫操作一般可通過recordset對象實現(xiàn)。方法如下—以ACCESS數(shù)據(jù)庫為例:
Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=ACCESS
數(shù)據(jù)庫文件.MDB”
‘打開到數(shù)據(jù)庫的連接
Dim rs As New Recordset
'聲明一個記錄集對象
rs.Open [記錄源, cnn, 游標(biāo)類型, 鎖定類型, 命令類型]
‘也可先設(shè)置記錄集相關(guān)屬性
text1.text= rs(“字段名稱1或索引”)
‘假設(shè)讀取出來的字段信息顯示在文本框中,三種讀取方法等價 text2.text=rs.fields(“字段名稱2或索引”)text3.text= rs!字段名稱3 …….rs.close
‘關(guān)閉記錄集對象 cnn.Close
‘關(guān)閉與數(shù)據(jù)庫的連接 set rs=Nothing
‘釋放rs對象實例 set cnn=Nothing ‘釋放Connection對象實例
? 記錄源一般為一條SQL查詢語句,以實現(xiàn)查詢目的。
? Recordset對象還保持查詢返回的記錄的位置,它返回第一個檢索到的記錄,并允許你一次一項逐步掃描其他結(jié)果。Recordset對象的部分屬性及方法如下 Rs(i): 讀取第i個字段的數(shù)據(jù),i從0開始 Rs(字段名): 讀取指定字段的數(shù)據(jù) Rs.EOF:記錄指針指到記錄的尾部 Rs.BOF:記錄指針指到記錄的頭部 Rs.RecordCount: 游標(biāo)中的數(shù)據(jù)記錄總數(shù)
Rs.PageSize:當(dāng)對象設(shè)有分頁時,用于指定邏輯頁中的記錄個數(shù) Rs.PageCount:返回記錄集中的邏輯分頁數(shù) Rs.MoveNext: 將記錄指針移到下一個記錄 Rs.MovePrev: 將記錄指針移到上一個記錄 Rs.MoveFirst: 將記錄指針移到第一個記錄 Rs.MoveLast: 將記錄指針移到最后一個記錄 rs.Delete:將當(dāng)前記錄刪除 rs.addnew:添加一條新記錄(行)
? 如果要讀取滿足條件的數(shù)據(jù)庫記錄,只要在SELECT語句中增加WHERE子句即可(例如:WHERE 性別=”男”),如果要讀取多條滿足條件的數(shù)據(jù)庫記錄,可通過循環(huán)語句來實現(xiàn),并且每讀取一條記錄后使用Rs.MoveNext移動記錄指針以讀取下一條記錄。
三、寫數(shù)據(jù)庫操作
方法1:使用recordset對象(此方法一般初學(xué)者使用較多)。方法如下—以ACCESS數(shù)據(jù)庫為例: Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=ACCESS
數(shù)據(jù)庫文件.MDB”
‘打開到數(shù)據(jù)庫的連接
Dim rs As New Recordset
'聲明一個記錄集對象
rs.Open [記錄源, cnn, 游標(biāo)類型, 鎖定類型, 命令類型]
‘也可先設(shè)置記錄集相關(guān)屬性 rs.addnew ‘告訴rs我們要添加一行
rs(“字段名稱1或索引”)=值1
‘給要添加的行的一個字段賦值,三種方法等價 rs.fields(“字段名稱2或索引”)=值2 rs!字段名稱3 =值3 …….rs.update
‘通知rs我們要把這個行寫入數(shù)據(jù)庫 rs.close
‘關(guān)閉記錄集對象 cnn.Close
‘關(guān)閉與數(shù)據(jù)庫的連接 set rs=Nothing
‘釋放rs對象實例 set cnn=Nothing ‘釋放Connection對象實例
? addnew使用方法后,如果要放棄添加的結(jié)果,應(yīng)調(diào)用記錄集的CancelUpdate方法放棄。
方法2:使用Connection對象的Execute方法對表進行SQL記錄插入操作(要求要熟悉SQL命令)Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=ACCESS
數(shù)據(jù)庫文件.MDB”
‘打開到數(shù)據(jù)庫的連接
strSQL = “Insert Into 數(shù)據(jù)表(字段1, 字段2…..)Values(值1, 值2…..)
‘拼寫Insert插入語句 cnn.Execute strSQL
'執(zhí)行Insert語句實現(xiàn)添加 …….cnn.Close
‘關(guān)閉與數(shù)據(jù)庫的連接
set cnn=Nothing ‘釋放Connection對象實例
四、修改數(shù)據(jù)庫操作
方法1:使用recordset對象(此方法一般初學(xué)者使用較多)。方法如下—以ACCESS數(shù)據(jù)庫為例: Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open ”Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=ACCESS
數(shù)據(jù)庫文件.MDB“
‘打開到數(shù)據(jù)庫的連接
Dim rs As New Recordset
'聲明一個記錄集對象
rs.Open [記錄源, cnn, 游標(biāo)類型, 鎖定類型, 命令類型]
‘也可先設(shè)置記錄集相關(guān)屬性 …….rs(”字段名稱1或索引“)=新值1
‘‘給要修改的行的一個字段賦一個新值,三種方法等價 rs.fields(”字段名稱2或索引“)=新值2 rs!字段名稱3 =新值3 …….rs.update
‘通知rs,我們要把修改好的記錄行寫入數(shù)據(jù)庫 rs.close
‘關(guān)閉記錄集對象 cnn.Close
‘關(guān)閉與數(shù)據(jù)庫的連接 set rs=Nothing
‘釋放rs對象實例 set cnn=Nothing ‘釋放Connection對象實例
? 如果放棄修改結(jié)果,應(yīng)調(diào)用記錄集的CancelUpdate方法放棄更新數(shù)據(jù)庫。
方法2:使用Connection對象的Execute方法對表進行SQL記錄更新操作(要求要熟悉SQL命令)Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open ”Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=ACCESS
數(shù)據(jù)庫文件.MDB“
‘打開到數(shù)據(jù)庫的連接
strSQL = ”Update 數(shù)據(jù)表 Set 字段1=新值1, 字段2=新值2…..‘拼寫Update語句,以便進行修改 cnn.Execute strSQL
'執(zhí)行Insert語句實現(xiàn)添加 …….cnn.Close
‘關(guān)閉與數(shù)據(jù)庫的連接
set cnn=Nothing ‘釋放Connection對象實例
五、刪除數(shù)據(jù)庫操作
方法1:使用recordset對象(此方法一般初學(xué)者使用較多)。方法如下—以ACCESS數(shù)據(jù)庫為例方法1:通過 Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=ACCESS
數(shù)據(jù)庫文件.MDB”
‘打開到數(shù)據(jù)庫的連接
Dim rs As New Recordset
'聲明一個記錄集對象
rs.Open [記錄源, cnn, 游標(biāo)類型, 鎖定類型, 命令類型]
‘也可先設(shè)置記錄集相關(guān)屬性 …….rs.Delete
‘刪除當(dāng)前記錄 …….rs.update
‘通知rs,我們要把修改好的記錄行寫入數(shù)據(jù)庫 rs.close
‘關(guān)閉記錄集對象 cnn.Close
‘關(guān)閉與數(shù)據(jù)庫的連接 set rs=Nothing
‘釋放rs對象實例 set cnn=Nothing ‘釋放Connection對象實例
? 刪除數(shù)據(jù)庫記錄前應(yīng)先找到(查詢)待刪除的記錄項(通過rs.Open來實現(xiàn))。
方法2:使用Connection對象的Execute方法(要求使用者要熟悉SQL命令)例如:如果要將數(shù)據(jù)庫“成績.mdb”中的名字為“學(xué)生情況表”的數(shù)據(jù)表中,學(xué)號為'07001'的記錄刪除,可通過下列方法來實現(xiàn)。
Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=ACCESS
數(shù)據(jù)庫文件.MDB”
‘打開到數(shù)據(jù)庫的連接
sql=“delete from學(xué)生情況表where 學(xué)號='07001'”
‘拼寫delete語句,以便進行刪除
cnn.Execute strSQL
'執(zhí)行elete語句實現(xiàn)刪除 …….cnn.Close
‘關(guān)閉與數(shù)據(jù)庫的連接
set cnn=Nothing ‘釋放Connection對象實例
附:分頁簡介---使用記錄集
一、.原理:
分頁其實是將數(shù)據(jù)庫中的記錄分割成若干段,并將各段記錄放在同一個“邏輯頁面”上“分屏顯示”出來,其實顯示的“邏輯頁面”只有1頁,只是每次顯示的頁面記錄不同罷了。通過控制各頁中數(shù)據(jù)庫顯示記錄的不同,來刷新頁面的顯示內(nèi)容。
二、用到的幾個記錄集屬性
rs.pagesize:定義一頁顯示記錄的條數(shù); rs.recordcount:統(tǒng)計數(shù)據(jù)庫記錄總數(shù); rs.pagecount:統(tǒng)計總頁數(shù);
rs.absolutepage:將數(shù)據(jù)庫指針移動到當(dāng)前頁要顯示的數(shù)據(jù)記錄的第一條記錄;比如有20條記錄的一個數(shù)據(jù)庫,我們分為一頁顯示5條記錄,如將AbsolutePage屬性設(shè)為2,則當(dāng)前記錄指針移至第2頁第1條記錄,也即將指針移動到第6條記錄處,依次類推....(AbsolutePage 屬性是以 1 為起始的)