版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第6章使用ADO對象6.1使用Connection對象6.2使用Recordset對象6.3使用Command對象第6章使用ADO對象6.1使用Connection對象
Connection對象代表了打開的、與數(shù)據(jù)源的連接,該對象代表與數(shù)據(jù)源進行的唯一會話。如果是客戶端/服務(wù)器數(shù)據(jù)庫系統(tǒng),該對象等價于到服務(wù)器的實際網(wǎng)絡(luò)連接。使用該對象可以實現(xiàn)與MicrosoftSQLServer和MicrosoftAccess等數(shù)據(jù)庫的連接,也可以通過SQL語句對所連接的數(shù)據(jù)庫進行各種各樣的操作。第6章目錄一創(chuàng)建數(shù)據(jù)庫連接1.創(chuàng)建Connection對象實例 與使用其他ASP組件一樣,在使用ADOConnection對象之前,應(yīng)使用Server.CreateObject方法創(chuàng)建該對象的實例,語法格式如下:
<%
Dimcnn Setcnn=Server.CreateObject("ADODB.Connection") %>第6章使用ADO對象2.指定連接字符串
Connection對象的ConnectionString屬性可以包含用來建立數(shù)據(jù)庫連接的信息。該屬性的取值是一個字符串,通常稱為連接字符串,包含一系列的“參數(shù)=值”語句,各個語句用分號分隔。 例如,當(dāng)在ASP中訪問Access數(shù)據(jù)庫時,可以在連接字符串中包含DRIVER和DBQ兩個參數(shù),分別指定所用的數(shù)據(jù)庫驅(qū)動程序和要連接的Access數(shù)據(jù)庫文件的路徑。例如:<%cnn.ConnectionString="DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ=c:\test.mdb"%>打開連接時ConnectionString屬性為只讀,關(guān)閉連接后該屬性可讀可寫。第6章目錄第6章使用ADO對象3.設(shè)置連接超時周期
Connection.
ConnectionTimeout=20。4.打開數(shù)據(jù)庫連接
Connection.Open方法可以建立到數(shù)據(jù)庫的物理連接,語法:
connection.OpenConnectionString,UserID,Password,OpenOptions在上述語法格式中,所有參數(shù)都是可選的。其中ConnectionString指定連接字符串。UserID指定建立連接時所使用的用戶名稱。Password指定建立連接時所用密碼。使用OpenOptions參數(shù)可以設(shè)置異步打開連接。第6章目錄第6章使用ADO對象5.檢查Connection對象的狀態(tài) 使用Connection對象的State屬性可以檢查該對象的當(dāng)前狀態(tài),該屬性是只讀的,其返回值是一個長整型數(shù)字,返回下列常量之一:adStateClosed:表示該對象是關(guān)閉的。adStateOpen:表示該對象是打開的。以上符號常量包含在文件adovbs.inc中,可以在\ProgramFiles\CommonFiles\System\ado文件中找到該文件,該文件包含與ADO一起使用的符號常量的定義清單。若要使用這些符號常量,應(yīng)將該文件復(fù)制到站點主目錄下,并使用#include指令將該文件包含到ASP頁中。6.關(guān)閉數(shù)據(jù)庫連接 在對打開的Connection對象的操作結(jié)束后,可以使用Close方法釋放所有關(guān)聯(lián)的系統(tǒng)資源。語法格式如下:
object.Close其中object參數(shù)指定Connection對象的名稱。 需要說明的是,關(guān)閉對象并非將它從內(nèi)存中刪除,此時可以更改它的屬性設(shè)置并在以后再次使用Open方法打開它。要將對象完全從內(nèi)存中刪除,可以將對象變量設(shè)置為Nothing。第6章目錄第6章使用ADO對象使用數(shù)據(jù)鏈接文件 創(chuàng)建數(shù)據(jù)鏈接文件后,在連接字符串中使用FILENAME參數(shù)來引用它,腳本如下:
<%
Dimcnn
Setcnn=Server.CreateObject("ADODB.Connection")
cnn.ConnectionString="FILENAME=c:\MydataLink.udl;"&_ "UID=hegels;PWD=secret"
cnn.Open %>
如果在創(chuàng)建數(shù)據(jù)鏈接文件時選取了“允許保存密碼”復(fù)選框,也可以省略連接字符串中的UID和PWD參數(shù)。
創(chuàng)建數(shù)據(jù)鏈接文件操作演示第6章目錄第6章使用ADO對象2.對SQLServer數(shù)據(jù)庫創(chuàng)建ODBC連接 使用ODBC驅(qū)動程序連接SQLServer數(shù)據(jù)庫時,可以將連接信息保存在以下三個位置上:保存在Windows注冊表中,稱為ODBC系統(tǒng)數(shù)據(jù)源(系統(tǒng)DSN),它對于當(dāng)前機器上的所有用戶都是可見的保存在文本文件中,稱為ODBC文件數(shù)據(jù)源(文件DSN),它可以由安裝了相同ODBC驅(qū)動程序的用戶共享保存在字符串中,直接包含在ASP腳本代碼中。
創(chuàng)建系統(tǒng)數(shù)據(jù)源和文件數(shù)據(jù)源演示使用系統(tǒng)數(shù)據(jù)源
<%
Dimcnn
Setcnn=Server.CreateObject("ADODB.Connection")
cnn.ConnectionString="DSN=MySysDSN;UID=hegels;PWD=secret"
cnn.Open %>第6章目錄第6章使用ADO對象使用文件數(shù)據(jù)源在連接字符串中使用FILEDSN參數(shù)來引用文件數(shù)據(jù)源,腳本如下:
<%
Dimcnn
Setcnn=Server.CreateObject("ADODB.Connection")
cnn.ConnectionString="FILEDSN=MyFileDSN;UID=hegels;PWD=secret"
cnn.Open %>使用連接字符串 若要將所有連接信息直接保存在連接字符串,應(yīng)當(dāng)在連接字符串中包含以下四個參數(shù):DRIVER參數(shù)指定所用的ODBC驅(qū)動程序,UID和PWD給出用戶標(biāo)識和密碼,DATABASE參數(shù)指定要連接的數(shù)據(jù)庫,腳本如下:
<%
Dimcnn
Setcnn=Server.CreateObject("ADODB.Connection")
cnn.ConnectionString="DRIVER={SQLServer};"&_ "UID=hegels;PWD=secret;DATABASE=Northwind"
cnn.Open %>
【例6.1】演示第6章目錄第6章使用ADO對象6.1.3連接Access數(shù)據(jù)庫1.對Access數(shù)據(jù)庫創(chuàng)建OLEDB連接 使用OLEDB提供程序?qū)ccess數(shù)據(jù)庫創(chuàng)建連接時,可以將連接信息保存在連接字符串,也可以將連接信息保存在數(shù)據(jù)鏈接文件中。下面的腳本說明如何使用MicrosoftAccess數(shù)據(jù)庫的OLEDB提供程序來打開一個數(shù)據(jù)庫連接。
<%
Dimcnn
Setcnn=Server.CreateObject("ADODB.Connection")
cnn.ConnectionString="PROVIDER=Microsoft.Jet.OLEDB.4.0;"&_ "DATASOURCE="&_
MapPath("Data/Northwind.mdb")
cnn.Open %>在上述腳本中,連接字符串包含PROVIDER和DATASOURCE兩個參數(shù):前者指定連接數(shù)據(jù)庫所使用的OLEDB提供程序,在本例中為Microsoft.Jet.OLEDB.4.0;后者指定要連接的Access數(shù)據(jù)庫,在本例中通過調(diào)用Server.MapPath方法指定了該數(shù)據(jù)庫的路徑。第6章目錄第6章使用ADO對象使用數(shù)據(jù)鏈接文件在連接字符串中通過FILENAME參數(shù)來引用數(shù)據(jù)鏈接文件:
<%
Dimcnn
Setcnn=Server.CreateObject("ADODB.Connection")
cnn.ConnectionString="FILENAME=AccessDataLink.udl"
cnn.Open %>
創(chuàng)建數(shù)據(jù)鏈接文件演示第6章目錄第6章使用ADO對象2.對Access數(shù)據(jù)庫創(chuàng)建ODBC連接 使用ODBC驅(qū)動程序?qū)ccess數(shù)據(jù)庫創(chuàng)建連接時,可以將使用以下三種方式來保存連接信息:創(chuàng)建系統(tǒng)數(shù)據(jù)源,將連接信息保存Windows注冊表中創(chuàng)建文件數(shù)據(jù)源,將連接信息保存文本文件中將連接信息保存在字符串中,直接包含在ASP腳本中
創(chuàng)建系統(tǒng)數(shù)據(jù)源和文件數(shù)據(jù)源演示使用系統(tǒng)數(shù)據(jù)源 在連接字符串中使用DSN參數(shù)來引用系統(tǒng)數(shù)據(jù)源:
<%
Dimcnn
Setcnn=Server.CreateObject("ADODB.Connection")
cnn.ConnectionString="DSN=AccessDSN"
cnn.Open %>第6章目錄第6章使用ADO對象使用文件數(shù)據(jù)源在連接字符串中使用FILEDSN參數(shù)來引用文件數(shù)據(jù)源:<%DimcnnSetcnn=Server.CreateObject("ADODB.Connection")cnn.ConnectionString="FILEDSN=AccessDSN"cnn.Open%>使用連接字符串使用DRIVER參數(shù)指定所使用的ODBC驅(qū)動程序,使用DBQ參數(shù)指定要連接的Access數(shù)據(jù)庫:<%DimcnnSetcnn=Server.CreateObject("ADODB.Connection")cnn.ConnectionString="DRIVER={MicrosoftAccessDriver(*.mdb)};"&_"DBQ="&Server.MapPath("Data/Northwind.mdb")cnn.Open%>第6章目錄第6章使用ADO對象6.1.4使用Connection對象執(zhí)行SQL查詢 使用Connection對象的Execute方法還能夠執(zhí)行指定的查詢、SQL語句、存儲過程或特定提供程序的文本等內(nèi)容。該方法有下列兩種語法格式。對于不按行返回的命令字符串:connection.ExecuteCommandText,RecordsAffected,Options對于按行返回的命令字符串:Setrecordset=connection.Execute(CommandText,RecordsAffected,Options)其中CommandText參數(shù)是一個字符串,包含要執(zhí)行的SQL語句、表名、存儲過程或特定提供程序的文本。該參數(shù)的內(nèi)容可以是標(biāo)準(zhǔn)的SQL語法或任何提供程序支持的特殊命令格式。RecordsAffected是可選參數(shù),長整型變量,提供程序向其返回操作所影響的記錄數(shù)目。Options也是可選參數(shù),指示提供程序應(yīng)如何為CommandText參數(shù)賦值,可以取下列符號常量之一。adCmdText:指示提供程序應(yīng)將CommandText賦值為命令的文本定義。adCmdTable:指示提供程序應(yīng)將CommandText賦值為表名。adCmdTableDirect:指示提供程序應(yīng)從CommandText命名的表中返回所有行。adCmdStoredProc:指示提供程序應(yīng)將CommandText賦值為存儲過程。adCmdUnknown:指示CommandText參數(shù)中的命令類型為未知。adExecuteAsync:指示命令應(yīng)該異步執(zhí)行。第6章目錄第6章使用ADO對象1.創(chuàng)建新數(shù)據(jù)庫 在SQL語言中,使用CREATEDATABASE語句來創(chuàng)建一個新數(shù)據(jù)庫及存儲該數(shù)據(jù)庫的文件。基本語法格式如下:
CREATEDATABASEdatabase_name其中參數(shù)database_name指定新數(shù)據(jù)庫的名稱。數(shù)據(jù)庫名稱在服務(wù)器中必須唯一,并且符合標(biāo)識符的規(guī)則。在ASP頁面上執(zhí)行Connection.Execute方法時,可以將CREATEDATABASE語句作為CommandText參數(shù)的值,以創(chuàng)建一個SQLServer數(shù)據(jù)庫。2.創(chuàng)建新表 在SQL語言中,使用CREATETABLE語句創(chuàng)建一個新表。語法如下:
CREATETABLEtable_name (column_namedata_type,column_namedata_type,...)其中table_name是新表的名稱,必須符合標(biāo)識符規(guī)則。column_name是表中的列名,列名必須符合標(biāo)識符規(guī)則,并且在表內(nèi)唯一。data_type指定列的數(shù)據(jù)類型,可以是系統(tǒng)數(shù)據(jù)類型或用戶定義數(shù)據(jù)類型。在ASP頁面中,首先使用Connection對象的Open建立到指定數(shù)據(jù)庫的連接,然后將CREATETABLE語句作為CommandText參數(shù)的值來執(zhí)行Execute方法,以在所連接的數(shù)據(jù)庫中創(chuàng)建一個新表。
【例6.2】【例6.3】演示第6章目錄第6章使用ADO對象3.添加記錄 在SQL語言中,使用INSERT語句將一行新記錄添加到表中?;菊Z法格式如下:
INSERT[INTO]table_name [(column_list)]VALUES(expression,...n)其中table_name指定將要接收數(shù)據(jù)的表。INTO是一個可選的關(guān)鍵字,可以將它用在INSERT和目標(biāo)表之間。column_list是要在其中插入數(shù)據(jù)的一列或多列的列表,必須用圓括號將column_list括起來,并且用逗號進行分隔。VALUES給出引入要插入的數(shù)據(jù)值的列表,必須用圓括號將值列表括起來。expression是一個常量、變量或表達(dá)式。 在ASP頁面中,首先使用Connection對象的Open創(chuàng)建到指定數(shù)據(jù)庫的連接,然后將INSERT語句作為CommandText參數(shù)的值來執(zhí)行Execute方法,以在指定的表中添加一行新記錄。
【例6.4】演示第6章目錄第6章使用ADO對象4.檢索記錄 在SQL語言中,使用SELECT語句從表中檢索數(shù)據(jù),該語句有許多子句,例如FROM子句指定從其中檢索數(shù)據(jù)的表,WHERE子句指定用于限制返回的行的搜索條件,ORDERBY子句設(shè)置結(jié)果集的排序方式等。 在ASP頁面中,首先使用Connection對象的Open創(chuàng)建到指定數(shù)據(jù)庫的連接,然后將SELECT語句作為CommandText參數(shù)的值來執(zhí)行Execute方法,以從指定的表中選擇一行或多行記錄。
【例6.5】演示第6章目錄第6章使用ADO對象5.更新記錄 在SQL語言中,使用UPDATE語句更改表中的現(xiàn)有數(shù)據(jù)?;菊Z法格式為:
UPDATEtable_name SET{column_name=expression}[,...n] [WHERE<search_condition>]其中table_name給出需要更新的表的名稱。SET子句指定要更新的列或變量名稱的列表。column_name指定含有要更改數(shù)據(jù)的列的名稱。expression的值用于代替列中原有的值。WHERE子句指定要更新表中的哪些記錄。如果省略WHERE子句,則表中所有記錄都將被更改為SET子句指定的數(shù)據(jù)。 在ASP頁面中,首先創(chuàng)建到指定數(shù)據(jù)庫的連接,然后將UPDATE語句作為CommandText參數(shù)的值來執(zhí)行Execute方法,以更改指定表中的一行或多行記錄。
【例6.6】演示第6章目錄第6章使用ADO對象6.刪除記錄 在SQL語言中,使用DELETE語句從表中刪除一行或多行記錄?;菊Z法格式:
DELETEtable_name [WHERE<search_condition>]其中table_name指定要從其中刪除記錄的表的名稱。WHERE子句指定用于限制刪除行數(shù)的條件。如果沒有提供WHERE子句,則DELETE刪除表中的所有記錄。 也可以使用TRUNCATETABLE語句刪除表中的所有記錄,語法格式如下:
TRUNCATETABLEtable_name其中table_name指定要從其中刪除所有記錄的表的名稱。 在ASP頁面中,首先使用Connection對象的Open方法創(chuàng)建到指定數(shù)據(jù)庫的連接,然后將這些語句作為CommandText參數(shù)的值來執(zhí)行Execute方法,以刪除指定表中的記錄。
【例6.7】演示第6章目錄第6章使用ADO對象6.2使用Recordset對象
Recordset對象表示的是來自基本表或命令執(zhí)行結(jié)果的記錄全集。在任何情況下,該對象所指的當(dāng)前記錄均為集合內(nèi)的單個記錄。使用Recordset對象可以操作來自提供程序的數(shù)據(jù),通過該對象幾乎可以對所有數(shù)據(jù)進行操作。所有Recordset對象均使用記錄(行)和字段(列)進行構(gòu)造。6.2.1創(chuàng)建和訪問記錄集1.用Connection對象的Execute方法返回記錄集 當(dāng)調(diào)用Connection對象的Execute方法時,如果CommandText參數(shù)指定按行返回的查詢,執(zhí)行產(chǎn)生的任何結(jié)果將存儲在新的Recordset對象中。例子:
<%
Dimcnn,rst,sSQL
Setcnn=Server.CreateObject("ADODB.Connection") Setrst=Server.CreateObject("ADODB.Recordset")
cnn.ConnectionString="PROVIDER=SQLOLEDB;DATASOURCE=Abc;"&_ "UID=sa;PWD=123;DATABASE=Northwind"
sSQL="SELECT*FROMEmployeesWHERECountry='USA'" Setrst=cnn.ExecutesSQL
'現(xiàn)在可以通過Recordset對象對檢索到的數(shù)據(jù)進行存取
cnn.Close %>第6章目錄第6章使用ADO對象2.用Recordset對象的Open方法打開記錄集使用Recordset對象的Open方法打開一個記錄集。語法格式如下:recordset.OpenSource,ActiveConnection,CursorType,LockType,Options其中參數(shù)Source為Command對象變量名、SQL語句、表名、存儲過程調(diào)用或持久Recordset文件名。ActiveConnection為有效的Connection對象變量名或包含ConnectionString參數(shù)的字符串。CursorType指定打開Recordset時應(yīng)使用的游標(biāo)類型。LockType指定打開Recordset時應(yīng)使用的鎖定(并發(fā))類型。Options指定如何計算Source參數(shù)(如果它代表的不是Command對象),或從以前保存Recordset的文件中恢復(fù)Recordset。例如:
<%
Dimcnn,rst,sSQL
Setcnn=Server.CreateObject("ADODB.Connection") Setrst=Server.CreateObject("ADODB.Recordset")
cnn.ConnectionString="PROVIDER=SQLOLEDB;DATASOURCE=Abc;"&_ "UID=sa;PWD=123;DATABASE=Northwind"
cnn.Open
sSQL="SELECT*FROMEmployeesWHERECouontry='USA'"
rst.OpensSQL,cnn ……
rst.Close %>第6章目錄第6章使用ADO對象3.訪問字段值 每個Recordset對象都包含一個Fields集合,該集合由一些Field對象組成,F(xiàn)ield對象的個數(shù)由Fields集合的Count屬性確定。每個Field對象對應(yīng)于記錄集內(nèi)的一列,也就是數(shù)據(jù)庫表中的一個字段。使用Field對象的Value屬性可以設(shè)置或返回當(dāng)前記錄中的字段值,使用Field對象的Name屬性可以返回字段名。例如:
<%
Dimcnn,rst,sSQL
Setcnn=Server.CreateObject("ADODB.Connection") Setrst=Server.CreateObject("ADODB.Recordset")
cnn.ConnectionString="PROVIDER=SQLOLEDB;DATASOURCE=Abc;"&_ "UID=sa;PWD=123;DATABASE=pubs"
cnn.Open
sSQL="SELECTphoneFROMauthorsWHEREau_lname='Smith'"
rst.OpensSQL,cnn
Response.Writerst.Fields("phone").Value %>最后一條語句也可以用下面幾種形式來表示:
Response.Writerst("phone") Response.Writerst.Fields("phone") Response.Writerst(0) Response.Writerst.Fields(0) Response.Writerst.Fields(0).Value第6章目錄第6章使用ADO對象4.關(guān)閉記錄集 創(chuàng)建記錄集并執(zhí)行所需操作后,可以使用Close方法關(guān)閉Recordset對象,同時釋放相關(guān)聯(lián)的數(shù)據(jù)和可能已經(jīng)通過該特定Recordset對象對數(shù)據(jù)進行的獨立訪問。隨后可以調(diào)用Open方法重新打開具有相同屬性或已修改屬性的Recordset對象。
【例6.8】演示6.2.2設(shè)置游標(biāo)特性和鎖定類型1.設(shè)置游標(biāo)的類型 使用CursorType屬性可以指定打開Recordset對象時應(yīng)該使用的游標(biāo)類型,該屬性可以設(shè)置或返回下列值之一:adOpenForwardOnly:表示僅向前游標(biāo)(默認(rèn)值),只能在Recordset中向前滾動。adOpenKeyset:表示鍵集游標(biāo),允許Recordset中各種類型的移動。adOpenDynamic:表示動態(tài)游標(biāo),用于不依賴書簽的Recordset中各種類型的移動。如果提供者支持,可以使用書簽。adOpenStatic:表示靜態(tài)游標(biāo),也允許Recordset中各種類型的移動,支持書簽。第6章目錄第6章使用ADO對象2.設(shè)置游標(biāo)引擎的位置 使用Recrodset對象的CursorLocation屬性可以設(shè)置或返回游標(biāo)的位置,該屬性可以取下列值之一:adUseServer,表示使用數(shù)據(jù)提供程序或驅(qū)動程序提供的游標(biāo)(默認(rèn)值)。adUseClient:表示使用由本地游標(biāo)庫提供的客戶端游標(biāo)。3.設(shè)置鎖定類型 打開Recordset對象前設(shè)置LockType屬性可以指定打開該對象時提供程序應(yīng)該使用的鎖定類型,該屬性設(shè)置或返回下列值之一。adLockReadOnly:這是默認(rèn)值,表示只讀,無法更改數(shù)據(jù)。adLockPessimistic:表示保守式記錄鎖定(逐條),提供程序執(zhí)行必要的操作確保成功編輯記錄,通常采用編輯時立即鎖定數(shù)據(jù)源的記錄的方式。adLockOptimistic:表示開放式記錄鎖定(逐條),提供程序使用開放式鎖定,只在調(diào)用Update方法時鎖定記錄。adLockBatchOptimistic:表示開放式批更新,用于與立即更新模式相反的批更新模式。統(tǒng)計記錄集內(nèi)包含的記錄數(shù) 使用Recordset對象的RecordCount屬性可以確定Recordset對象中記錄的當(dāng)前數(shù)目。僅向前游標(biāo)和動態(tài)游標(biāo)不支持RecordCount屬性。當(dāng)ADO無法確定記錄數(shù)時,該屬性返回-1。
【例6.9】演示第6章目錄第6章使用ADO對象6.2.3記錄導(dǎo)航 當(dāng)打開一個非空記錄集時,當(dāng)前記錄總是位于第一行記錄上。使用Recordset對象的下列屬性或方法可以在不同記錄之間移動。AbsolutePosition屬性:設(shè)置或返回當(dāng)前記錄在記錄集內(nèi)的序號位置Bookmark屬性: 設(shè)置或返回在記錄集內(nèi)唯一標(biāo)識當(dāng)前記錄的書簽BOF屬性 :如果當(dāng)前記錄在第一條記錄之前,則該屬性值為TrueEOF屬性 :如果當(dāng)前記錄在最后一條記錄之后,則該屬性值為TrueMove方法: 語法格式:recordset.MoveNumRecords,Start
在記錄集內(nèi)向前或向后移動一定數(shù)目的記錄。NumRecords為正數(shù)時,向記錄集的末尾移動,為負(fù)數(shù)時向記錄集的開始移動。Start指定移動的起點,可以是當(dāng)前記錄(默認(rèn)值)或某一書簽MoveFirst方法: 移到記錄集內(nèi)的第一條記錄MoveLast方法: 移到記錄集內(nèi)的最后一條記錄MoveNext方法: 移到記錄集內(nèi)的下一條記錄MovePrevious方法: 移到記錄集內(nèi)的上一條記錄
【例6.10】演示第6章目錄第6章使用ADO對象6.2.4分頁顯示記錄1.使用PageSize屬性指定一頁中的記錄數(shù) 使用PageSize屬性設(shè)置或返回一個長整型值,以指定某頁上的記錄數(shù),默認(rèn)值為10。使用PageSize屬性可以確定組成邏輯數(shù)據(jù)頁的記錄數(shù)。在對數(shù)據(jù)進行分頁顯示時,該屬性在Web服務(wù)器方案中非常有用,可以用來在某一時刻查看一定數(shù)量的記錄。隨時可以設(shè)置該屬性,其值將用來計算特定頁第一個記錄的位置。2.使用PageCount屬性返回總頁數(shù) 使用PageCount屬性可以確定Recordset對象中數(shù)據(jù)的頁數(shù)?!绊摗笔谴笮〉扔赑ageSize屬性設(shè)置的記錄組。即使最后頁不完整,由于記錄數(shù)比PageSize值少,該頁也會作為PageCount值中的附加頁進行計數(shù)。如果Recordset對象不支持PageCount屬性,該值為-1,以表明該屬性無法確定。3.使用AbsolutePage屬性指定當(dāng)前記錄所在的頁
Recordset對象的AbsolutePage屬性設(shè)置或返回從1到該對象所含頁數(shù)(即PageCount)的長整型值。使用AbsolutePage屬性可以識別當(dāng)前記錄所在的頁碼,可以使用該屬性將記錄集從邏輯上劃分為一系列的頁,每頁的記錄數(shù)等于PageSize,但最后一頁除外,該頁記錄數(shù)可能比較少。提供程序必須支持該屬性的相應(yīng)功能才能使用該屬性。
AbsolutePage屬性從1開始并在當(dāng)前記錄為Recordset對象中的第一個記錄時等于1。設(shè)置該屬性可以移動到特定頁的第一個記錄。
【例6.11】演示第6章目錄第6章使用ADO對象6.2.5搜索記錄 使用Recordset對象的Find方法可以搜索記錄集內(nèi)滿足指定條件的記錄。如果條件符合,則記錄集位置設(shè)置在找到的記錄上,否則位置將設(shè)置在記錄集的末尾。語法格式如下:
Find(criteria,SkipRows,searchDirection,start)其中criteria參數(shù)是一個字符串,包含用于搜索的指定列名、比較操作符和值的語句。SkipRows是可選參數(shù),取長整型值,其默認(rèn)值為零,它指定當(dāng)前行或start書簽的位移以開始搜索。searchDirection是可選參數(shù),指定搜索應(yīng)從當(dāng)前行還是搜索方向上的下一個有效行開始,其值可以是adSearchForward或adSearchBackward。搜索停止在記錄集的開始還是末尾則取決于searchDirection值。start是可選參數(shù),變體型書簽,指定用作搜索的開始位置。
criteria中的比較操作符可以是“>”(大于)、“<”(小于)、“=”(等于)或“Like”(模式匹配)。criteria中的值可以是字符串、浮點數(shù)或者日期。字符串值以單引號分隔,例如state=‘WA’;日期值以“#”(數(shù)字記號)分隔,例如start_date>#7/22/97#”。如果比較操作符為Like,則字符串值可以包含通配符星號(*)和下劃線(_),星號表示某字符可以出現(xiàn)一次或多次,下劃線表示某字符只出現(xiàn)一次。
【例6.12】演示第6章目錄第6章使用ADO對象6.2.6更新記錄 使用Connection對象的Execute方法將SQLINSERT、DELETE和UPDATE語句提交給SQLServer服務(wù)器,可以完成數(shù)據(jù)的增刪改操作。也可以使用Recordset對象的下列方法來完成這些操作。AddNew: 添加一條新記錄Delete: 刪除當(dāng)前記錄Update: 保存當(dāng)前記錄所做的所有更改,移向其他記錄時 自動調(diào)用該方法CancelUpdate: 取消對當(dāng)前記錄或新記錄所做的任何更改,必須 在調(diào)用Update方法或移向其他記錄前調(diào)用UpdateBatch: 將所有掛起的批更新寫入磁盤
【例6.13】演示第6章目錄第6章使用ADO對象6.3使用Command對象6.3.1使用Command對象的步驟 當(dāng)在ASP頁面中使用Command對象處理數(shù)據(jù)時,應(yīng)首先設(shè)置命令類型、命令文本以及相關(guān)的活動數(shù)據(jù)庫連接等,并通過Parameter對象傳遞命令參數(shù),然后通過調(diào)用Execute方法來執(zhí)行SQL語句或調(diào)用存儲過程,以完成數(shù)據(jù)庫記錄的檢索、添加、修改和刪除等任務(wù)。1.設(shè)置相關(guān)的數(shù)據(jù)庫連接 使用ActiveConnection屬性指示指定的Command或Recordset對象當(dāng)前所屬的Connection對象。該屬性設(shè)置或返回包含了定義連接或Connection對象的字符串。使用ActiveConnection屬性可以確定在其上將執(zhí)行指定Command對象或打開指定Recordset的Connection對象。對于Command對象,ActiveConnection屬性為可讀可寫。 必須首先將ActiveConnection屬性設(shè)置為打開的Connection對象或設(shè)置為有效的連接字符串,然后才能調(diào)用Command對象的Execute方法。第6章目錄第6章使用ADO對象2.設(shè)置命令類型 使用Command對象的CommandType屬性指定命令類型以優(yōu)化性能。該屬性可以設(shè)置或返回以下某個值。adCmdText:將CommandText作為命令或存儲過程調(diào)用的文本化定義進行計算。adCmdTable:將CommandText作為其列全部由內(nèi)部生成的SQL查詢返回的表格的名稱進行計算。adCmdTableDirect:將CommandText作為其列全部返回的表格的名稱進行計算。adCmdStoredProc:將CommandText作為存儲過程名進行計算。adCmdUnknown:這是默認(rèn)值,指示CommandText屬性中的命令類型為未知。adCommandFile:將CommandText作為持久Recordset文件名進行計算。adExecuteNoRecords:指示CommandText為不返回行的命令或存儲過程(例如插入數(shù)據(jù)的命令)。第6章目錄第6章使用ADO對象3.定義命令的可執(zhí)行文本 使用Command對象的CommandText屬性定義命令(例如SQL語句)的可執(zhí)行文本,即要發(fā)送給提供程序的命令文本。該屬性可設(shè)置或返回包含提供程序命令的字符串值,例如SOL查詢語句、表名稱或存儲的過程調(diào)用。4.設(shè)置命令超時時間 使用Command對象的CommandTimeout屬性指示在終止嘗試和產(chǎn)生錯誤之前執(zhí)行命令期間需等待的時間,即提供程序等待命令執(zhí)行的秒數(shù)。該屬性設(shè)置或返回長整型值,該值指示等待命令執(zhí)行的時間(單位為秒),默認(rèn)值為30。5.執(zhí)行命令 使用Command對象的Execute方法執(zhí)行在CommandText屬性中指定的查詢、SQL語句或存儲過程。語法格式分為以下兩種形式。對于按行返回的Command:Setrecordset=command.Execute(RecordsAffected,Parameters,Options)對于不按行返回的Command:command.ExecuteRecordsAffected,Parameters,Options其中參數(shù)RecordsAffected為提供程序返回操作所影響的記錄數(shù)目。Parameters為使用SQL語句傳送的參數(shù)值。Options指示提供程序如何對Command對象的CommandText屬性賦值。第6章目錄第6章使用ADO對象6.3.2使用Parameters集合
Command對象具有由Parameter對象組成的Parameters集合,Parameter對象代表與基于參數(shù)化查詢或存儲過程的Command對象相關(guān)聯(lián)的參數(shù)或自變量。通過創(chuàng)建Parameter對象并添加到Parameters集合中,可以向參數(shù)化查詢傳遞所需要的數(shù)據(jù)。1.創(chuàng)建Parameter對象 使用CreateParameter方法可以用指定的名稱、類型、方向、大小和值創(chuàng)建新的Parameter對象,語法格式如下:
Setparameter=command.CreateParameter(Name,Type,Direction,Size,Value)參數(shù)Name指定Parameter對象的名稱。Type指定Parameter對象的數(shù)據(jù)類型,可以使用符號常量為其賦值。例如,adDate表示日期值;adInteger表示4字節(jié)的帶符號整型,等等。Direction參數(shù)指定Parameter對象類型,可以設(shè)置或返回以下某個值:adParamInput指示輸入?yún)?shù)(默認(rèn)值);adParamOut
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電話營銷招商流程及技巧
- 二零二五年度房地產(chǎn)典當(dāng)與房地產(chǎn)投資信托基金合同3篇
- 二零二五年度水利工程設(shè)備安裝與調(diào)試合同6篇
- 孕婦排惡露護理方法
- 2024青島二手房購房合同范本(含房屋維修責(zé)任)3篇
- 氣候、人與空間
- 有關(guān)小學(xué)生端午節(jié)主題演講演講詞匯集(7篇)
- 2025年度電子產(chǎn)品試用合作協(xié)議范本3篇
- 二零二五年度智能風(fēng)控股票質(zhì)押借款協(xié)議3篇
- 2025年度民間個人二手轎車出讓合同模板3篇
- 雅禮中學(xué)2024-2025學(xué)年初三創(chuàng)新人才選拔數(shù)學(xué)試題及答案
- 下屬企業(yè)考核報告范文
- 采購合同評審表-模板
- 冬季高空作業(yè)施工方案
- 2024-2025學(xué)年人教版九年級數(shù)學(xué)上學(xué)期復(fù)習(xí):圓的綜合解答題 壓軸題型專項訓(xùn)練(30道題)
- 高中學(xué)生交通安全課件
- 高速收費站文明服務(wù)培訓(xùn)
- 2024年基金應(yīng)知應(yīng)會考試試題
- 2024員工質(zhì)量意識培訓(xùn)內(nèi)容大全
- 上海市徐匯區(qū)南洋模范中學(xué)2025屆物理高二第一學(xué)期期末檢測試題含解析
- 2024年教師資格考試初級中學(xué)學(xué)科知識與教學(xué)能力數(shù)學(xué)試題及解答參考
評論
0/150
提交評論