



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