欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
[轉]ASP:ADO數據庫訪(fǎng)問(wèn)

     現在很多動(dòng)態(tài)網(wǎng)頁(yè)是基于數據庫的,網(wǎng)頁(yè)的內容依靠數據庫生成。信息的查詢(xún)和輸入也需要數據庫支持,可以說(shuō)網(wǎng)站的操作基本離不開(kāi)數據庫的支持。在A(yíng)SP網(wǎng)站中,所有訪(fǎng)問(wèn)數據庫的操作都可以由ADO(ActiveX Data Objects)來(lái)實(shí)現。如果不能掌握其使用方法,ASP程序員就無(wú)法編寫(xiě)出功能強大的ASP應用程序。本章將介紹ADO和訪(fǎng)問(wèn)數據庫的方法。

13.1 ADO概述
ADO提供了訪(fǎng)問(wèn)各種數據庫的連接機制,是目前流行的數據庫連接方法之一。使用ADO提供的訪(fǎng)問(wèn)數據庫統一接口,用戶(hù)可以讀取和寫(xiě)入幾乎所有的數據庫管理系統,包括Microsoft SQL Server、Oracle和Microsoft Access等,也可以訪(fǎng)問(wèn)Microsoft Excel的數據文件。
ADO是一個(gè)COM組件,任何COM技術(shù)的編程語(yǔ)言都可以使用,包括Microsoft Vis l Basic、Microsoft Vis l C++、Delphi,以及ASP。ASP腳本通過(guò)ADO技術(shù)執行SQL指令,對數據庫記錄執行添加、更新和刪除操作,可以說(shuō)ADO是適合Web數據庫應用的最佳選擇。
13.1.1 ADO對象
ADO提供了一系列的對象、屬性和方法,用其可以輕松完成數據庫的連接,以及數據的查詢(xún)、添加、修改和刪除等各種操作。在A(yíng)SP中ADO由ADODB對象庫中的子對象組成。ADO的常用對象如表13-1所示。
表13-1 ADO的常用對象
對象         說(shuō) 明
Connection   連接對象,用來(lái)建立ASP腳本與數據源之間的連接
Recordset    記錄集對象,表示從數據源返回的數據集
Command      命令對象,用來(lái)執行SQL語(yǔ)句或者SQL Server的存儲過(guò)程
Field        域對象,表示記錄集中一個(gè)字段
Parameter    參數對象,代表與帶參數查詢(xún)或者SQL存儲過(guò)程的Command對象的一個(gè)參數
Property     屬性對象,代表提供者的動(dòng)態(tài)特征
Error        錯誤對象,與數據訪(fǎng)問(wèn)錯誤有關(guān)的詳細信息


ADO集合如表13-2所示
表13-2 ADO集合
對象           說(shuō) 明
Fields       與Recordset對象關(guān)聯(lián)的所有Field對象
Parameters   與Command對象關(guān)聯(lián)的所有Parameter對象
Properties   所有的Property對象
Errors       為連接錯誤創(chuàng )建的所有Error對象


13.1.2 使用ADO的步驟
在A(yíng)SP中使用ADO操作數據庫的步驟如下:
連接數據源。
設置訪(fǎng)問(wèn)數據庫源的命令,一般為SQL語(yǔ)句
執行命令。
如果命令按行返回數據,則將數據存儲在緩存中;如果使用SELECT語(yǔ)句,則保存在Recordset對象中。
修改緩存中的數據。
檢測出現的錯誤。
結束連接
1、連接數據源
操作數據庫前,必須首先建立與該數據庫的連接,成功的連接才可以使應用程序訪(fǎng)問(wèn)數據源。Command、Recordset及Field等對象操作數據庫時(shí)都必須依賴(lài)連接,Connection對象可以實(shí)現連接數據源操作,其常用屬性如表13-3所示
表13-3 Connection對象的常用屬性
屬性               說(shuō) 明
ConnectionString   連接字符串,表示與數據源建立連接的相關(guān)信息,需要在連接前設置
ConnectionTimeout  設置超時(shí)時(shí)間 ,默認值為30秒,需要在連接前設置
Mode               設置連接的模式,需要在連接前設置
DefaultDatabase    為連接設置一個(gè)默認的數據庫
Provider           為連接指定一個(gè)驅動(dòng)程序
Version            獲取ADO的版本
Cursorlocation     獲取或者設置游標的位置,該屬性的取值如下: adUseNone:不使用游標服務(wù)  adUseServer: 默認值,實(shí)時(shí)反映數據庫服務(wù)器上的修改,開(kāi)銷(xiāo)很大 adUseClient:沒(méi)有實(shí)時(shí)性,但可以對數據進(jìn)行查詢(xún)等操作


Connection對象的常用方法如表13-4所示。
表13-4 Connection對象的常用方法
方法        說(shuō) 明
Open       建立一個(gè)連接
Close      關(guān)閉一個(gè)連接
Execute    執行命令,如執行SQL語(yǔ)句


2、設置訪(fǎng)問(wèn)數據源的命令
訪(fǎng)問(wèn)數據源即可以直接使用SQL語(yǔ)句,也可以通過(guò)設置Command對象的屬性實(shí)現。Command對象具有強大的數據庫訪(fǎng)問(wèn)能力,通過(guò)它可以輕松地完成數據庫的各種操作。該對象的常用屬性如表13-5所示。
表13-5 Command對象的常用屬性
屬性               說(shuō) 明
ActiveConnection   將Connection對象與一個(gè)打開(kāi)的連接關(guān)聯(lián)
CommandText        設置或獲取命令
CommandTimeout     設置或者獲取執行命令的最大時(shí)間,超過(guò)該值將終止命令的執行或者產(chǎn)生錯誤,該屬性為長(cháng)整型值,默認值為30,單位為秒
CommandType        表示Command對象的類(lèi)型
State              指定對象的狀態(tài)是打開(kāi)還是關(guān)閉


Command對象的常用方法如表13-6所示
表13-6 Command對象的常用方法
方法      說(shuō) 明
Cancel   取消執行的命令
Execute  執行在CommandText屬性中指定的命令


3、獲取數據
Recordset對象可以從執行的命令中返回數據集,它也是ADO普遍使用的一個(gè)對象。該對象可以存放命令返回的結果,并可以對記錄執行增加、刪除和排序等操作,其常用屬性如表13-7所示。
13-7 Recordset對象的常用屬性
屬性           說(shuō) 明
RecordCount    返回記錄集記錄的數目
AbsolutePage   指定當前記錄所在的頁(yè),長(cháng)整型。該值可以從1到所含頁(yè)數,也可以是下列常數。 AdposUnknown: 當前Recordset為空 AdPosBOF:當前記錄指針位于記錄的頭 AdPosEOF:當前記錄指針位于記錄的尾
BOF            指示當前記錄位置是否位于記錄集第1個(gè)記錄之前,是,為T(mén)r,否則為False
EOF            指示當前記錄位置是否位于記錄集最后一個(gè)記錄之后。是,為T(mén)r,否則為False
PageCount      設置或者獲取當前記錄中的數據頁(yè)數
PageSize       設置或者獲取記錄集中一頁(yè)所包含的記錄數
RecordCount    獲取記錄集中記錄的數目
LockType       設置或者獲取訪(fǎng)問(wèn)記錄的鎖定類(lèi)型,常用值如表13-8所示
CursorType     記錄集中的游標類(lèi)型,常用值如表13-9所示


LockType屬性的常用值如表13-8所示
表13-8 LockType屬性的常用值
方法                 值         說(shuō) 明
adLockReadOnly                默認值,只讀,不能更改記錄數據
adLockPessimistic             通常在采用Update方法時(shí)鎖定數據源的方式
adLockOptimistic              通常在調用Update方法時(shí)鎖定記錄
adLockBatchOptimistic         用于成批更新


CursorType屬性的常用值如表13-9所示
表13-9 CursorType屬性的常用值
方法               值    說(shuō) 明
AdOpenForwardOnly      默認值,向前游標,只能向前滾動(dòng)訪(fǎng)問(wèn)記錄
AdOpenKeyset           鍵集游標,可以看到其他用戶(hù)除了刪除和添加之外的操作
AdOpenDynamic          動(dòng)態(tài)游標,可以看到其他用戶(hù)的修改操作
AdOpenStatic           靜態(tài)游標,只能查找記錄集的靜態(tài)副本,看不到其他用戶(hù)的操作


Recordset對象的常用方法如表13-10所示。
表13-10 Recordset對象的常用方法
方法          說(shuō) 明
MoveFirst      將當前記錄的指針移動(dòng)到記錄集的第一個(gè)記錄
MoveLast       將當前記錄的指針移動(dòng)到記錄集的最后一個(gè)記錄
MovePrevious   將當前記錄的指針向前移動(dòng)一個(gè)記錄
MoveNext       將當前記錄的指針向后移動(dòng)一個(gè)記錄
AddNew         添加一個(gè)新記錄
Delete         刪除當前記錄
Save           保存記錄
Update         更新記錄


4、檢測出現的錯誤
使用ADO操作數據庫時(shí)可能會(huì )出現錯誤,出現錯誤后會(huì )有一個(gè)或者多個(gè)Error對象入Connection對象的Error集合中。通過(guò)Error對象可以獲取每個(gè)錯誤的信息,該對象的屬性如表13-11所示。
表13-11 Error對象的屬性
屬性                   說(shuō) 明
Description             錯誤的說(shuō)明信息
Number                  標識錯誤的常量
Source                  說(shuō)明產(chǎn)生錯誤的對象
adLockBatchOptimistic   用于成批更新


13.2 Connection對象
ASP程序在操作數據庫時(shí),需要建立與數據庫的連接。ADO提供的Connection對象用于建立與數據庫的連接,其屬性和方法可以打開(kāi)和關(guān)閉與數據庫連接。在A(yíng)SP中,ADO連接數據庫的常用方法有以下三種:
    使用OLE DB連接
    使用ODBC連接
    使用DSN(Data Source Name)連接


13.2.1 使用OLE DB連接數據庫
用OLE DB可以連接SQL Server、Microsoft Access及Excel等數據源,下面是連接不同數據庫的方法。
1、建立與Access數據庫的連接
下面的代碼使用OLE DB連接Access數據庫user.mdb:
<%
'創(chuàng )建ADO DB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'獲取要連接的數據庫的物理路徑
path=Server.MapPath("/user.mdb")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
    "Data Source="&path
Conn.Open   '打開(kāi)與數據庫的連接
%>
代碼說(shuō)明如下:
Provider:OLE DB提供者的名字,如“Microsoft.Jet.OLEDB.4.0”
Data Source:指定數據源的名稱(chēng),如“d:\text\13\user.mdb”.
UserID:連接數據源時(shí)所用的用戶(hù)名稱(chēng)
PassWord:連接數據庫時(shí)用戶(hù)的密碼。
上面的形成也可以修改成下面的代碼:
<%
'創(chuàng )建ADO DB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'獲取要連接的數據庫的物理路徑
path=Server.MapPath("/user.mdb")
'依據連接的數據庫設置連接字符串
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;","Data Source="&path
%>
Open方法的語(yǔ)法格式如下:
connection.Open ConnectinString,UserID,Password,Option
語(yǔ)法格式說(shuō)明如下:
ConnectionString:可選項,指定連接信息的字符串,其中包含由分號隔開(kāi)的一系列語(yǔ)句。這些語(yǔ)句設置連接的屬性,如“Provider=Microsoft.Jet.LEDB.4.0”
UserID:可選項,指定連接數據庫所用的用戶(hù)名,此處指定的UserID將覆蓋Connectionstring字符串中指定的UserID。
Password:可選項,指定連接數據庫所用的密碼,此處指定的Password將覆蓋ConnectionString字符串中指定的Password。
Options:可選項,指定建立連接的方式,常用常量值如表13-12所示。


表13-12 Options的常用常量值
常量                    說(shuō) 明
adConnectUnspecifield   默認值,同步打開(kāi)連接
adAsyncConnect          異步打開(kāi)連接


2、建立與SQL Server數據庫的連接
下列使用OLE DB連接SQL Server數據庫:
<%
'創(chuàng )建ADO DB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString="Provider=SQLOLEDB;DataSource=ServerName;Initial Catalog=DataBaseName;UserID=UserName;password=PWD;"
Conn.Open   '打開(kāi)與數據庫的連接
%>
代碼說(shuō)明如下:
連接SQL Server時(shí),OLE DB的提供者名為“SQLOLEDB”
DataSource:SQL Server服務(wù)器名
Initial Catalog:數據庫名
UserID:可選項,指定連接數據庫所用的用戶(hù)名
Password:可選項,指定連接數據庫所用的密碼。


13.2.2 使用ODBC連接
     ODBC也可以連接SQL Server及Microsoft Access等數據庫。從連接形式上,可以使用DRIVE、DBQ、Provider和DataSource等關(guān)鍵字區分ODBC和OLE DB連接方式。使用ODBC連接數據庫時(shí),連接字符串通常有DRIVER和DBQ;使用OLE DB連接數據庫時(shí),連接字符串通常含有Proviider和DataSource等關(guān)鍵字。下面是使用ODBC連接不同數據的方法。


1、建立與Access數據庫的連接
下面是使用ODBC連接Access數據庫的代碼:
<%
'創(chuàng )建ADODB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString="DRIVE={Microsoft.Access.Driver(*.mdb)}"&_
       "DBQ="&Server.MapPath("/user.mdb")
Conn.Open
%>
代碼說(shuō)明如下:
DRIVER:指定ODBC所用的驅動(dòng)程序,如連接Access數據庫所用的驅動(dòng)程序為“Microsoft.Access.Driver(*.mdb)”。
DBQ:指定Access數據庫的物理路徑。


2、建立與SQL Server數據庫的連接
下面是使用ODBC連接SQL Server數據庫的代碼:
<%
'創(chuàng )建ADO DB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString='"DRIVER=(SQLServer);Server=ServerName;"&_
    DataBase=DataBaseName;UID=UserName;PWD=Password;"
Conn.Open   '打開(kāi)與數據庫的連接
%>
代碼說(shuō)明如下:
連接SQL Server時(shí),OLE DB的提供者名為“SQLOLEDB”。
Server:SQL Server服務(wù)器名。
Database:數據庫名
UID:可選項,指定連接數據庫所用的用戶(hù)名。
PWD:可選項,指定連接數據庫所用的密碼。

3、建立與Excel的連接
在網(wǎng)站設計時(shí)有時(shí)需要獲取Excel數據源中數據,ADO連接Excel文件的方法如下:
<%
Set ExcelConn=Server.CreaeObject("ADODB.Connection")
ExcelFile=Server.mappath("text.xls")
'依據連接的數據庫設置連接字符串
ExcelDriver="Driver={Microsoft Excel Driver(*.xls)};DBQ&ExeclFile
ExcelConn.Open ExcelDriver
%>
代碼說(shuō)明如下:
DRIVER:連接Excel文件所用的驅動(dòng)程序
DBQ:指定Excel文件的物理路徑。


13.2.3 使用DSN連接數據庫
     DSN是ODBC的數據源名,用來(lái)標識數據源的字符串,其中包含連接特定數據源的信息,這些信息包括數據源名稱(chēng)及ODBC驅動(dòng)程序。DSN主要有以下三種類(lèi)型。
用戶(hù)DSN:只有建立該DSN的用戶(hù)才能訪(fǎng)問(wèn)該數據源,并且只能在本計算機上使用,不能從網(wǎng)絡(luò )上訪(fǎng)問(wèn)該數據源。
系統DSN: 可以被該計算機上的所有有權限的用戶(hù)訪(fǎng)問(wèn)。
文件DSN:與系統DSN相似,但是可以從網(wǎng)絡(luò )上訪(fǎng)問(wèn)該數據源。
DSN可以由控制面板中的數據源創(chuàng )建、修改并刪除,本節將介紹建立Microsoft Access和SQL Server的DSN的方法。


1、建立Access數據庫的DSN
步驟1在Windows 2000 Server操作系統中,單擊“開(kāi)始”|“程序”|“管理工具”|“數據源ODBC”命令,彈出“ODBC數據源管理器”對話(huà)框,如圖13-1所示。也可以打開(kāi)“控制面板”窗口,雙擊“管理工具”|“數據源ODBC”圖標,打開(kāi)該對話(huà)框。

 


步驟2:?jiǎn)螕簟跋到yDSN”標簽,打開(kāi)“系統DNS”選項卡,如圖13-2所示。
步驟3:?jiǎn)螕簟疤砑印卑粹o,彈出“創(chuàng )建數據源”對話(huà)框,如圖13-3所示。

 


步驟4:選擇“Microsoft Access Driver(*.mdb)”選項,單擊“完成”按鈕彈出“ODBC Microsoft Access安裝”對話(huà)框,如圖13-4所示。
步驟5:輸入數據源名,單擊“選擇”按鈕彈出“選擇數據庫”對話(huà)框,如圖13-5所示。

 


步驟6:在“數據庫名”下拉列表框中選擇數據庫,單擊“確定”按鈕建立DNS如圖13-6所示。


2、建立SQL Server數據庫的DSN
建立SQL Server數據庫的DSN方法基本類(lèi)似,操作步驟如下:
    步驟1:在“創(chuàng )建數據源”對話(huà)框中選擇“SQL Server”選項,單擊“完成”按鈕彈出“創(chuàng )建到SQL Server的新數據源”對話(huà)框,如圖13-7所示。
    步驟2:在“名稱(chēng)”文本框中輸入DSN的名稱(chēng)。在“服務(wù)器”下拉列表框中選擇SQL Server服務(wù)器,或者輸入“l(fā)ocalhost”連接本地SQL Server服務(wù)器,單擊“下一步”按鈕,彈出驗證方式對話(huà)框,如圖13-8所示。 

步驟3:若選擇“使用網(wǎng)絡(luò )登錄ID的Windows NT驗證”單選按鈕,將以當前登陸Windwos NT的用戶(hù)登錄SQL Server數據庫;若選擇“使用用戶(hù)輸入登錄ID和密碼的SQL Server驗證”單選按鈕,將以SQL Server的用戶(hù)登錄SQL Server數據庫。本例選擇“使用用戶(hù)輸入登錄ID和密碼的SQL Server驗證”單選按鈕,輸入SQL Server的用戶(hù)sa和密碼。單擊“下一步”按鈕,彈出訪(fǎng)問(wèn)數據庫設置對話(huà)框。
    步驟4:選中“更改默認數據庫為”復選框,在下拉列表框中選擇要連接的數據庫。單擊“下一步”按鈕,彈出數據庫設置對話(huà)框。
    步驟5:設置SQL Server系統消息的語(yǔ)言、貨幣、時(shí)間及數字的格式,以及保存查詢(xún)的日志文件等選項。單擊“完成”按鈕,彈出“ODBC Microsoft SQL Server安裝”對話(huà)框。
    步驟6:?jiǎn)螕簟皽y試數據源”按鈕,測試連接數據源的正確性。彈出“SQL ServerODBC數據源”測試對話(huà)框
    步驟7:如果測試成功,則表示連接正確,單擊“確定”按鈕完成操作。
    設置DSN之后可以通過(guò)DSN連接數據庫,使用DSN連接數據庫的示例代碼如下:
<%
'創(chuàng )建ADO DB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString="DSN=Test;UID=sa;PWD=; "
Conn.Open   '打開(kāi)與數據庫的連接
%>
代碼說(shuō)明如下:
DSN:DSN的名稱(chēng)
UID:用戶(hù)名。
PWD:密碼。


13.3 Recordset對象
    Recordset(記錄集)對象是ADO中另一個(gè)非常重要的對象,在數據庫操作中經(jīng)常用到。該對象代碼執行命令后返回的記錄集合,通過(guò)該集合可以執行查看、修改及刪除記錄等各種操作。本節介紹如何建立Recordset對象,以及該對象的方法和屬性。

13.3.1 建立Recordset對象
在使用Recordset對象前,需要創(chuàng )建該對象,語(yǔ)法格式如下:
Set Rs=Server.CreateObject(“ADODB.Recordset”)
讀取表中所有記錄示例的實(shí)現如下:
1、連接數據庫
下面是連接數據庫的代碼:
<%
'創(chuàng )建ADO DB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
        "Data Source="&Server.MapPath("oa.mdb")
Conn.Open '打開(kāi)與數據庫的連接
%>


2、建立Recordset對象并獲取所有記錄
下面的代碼建立Recordset對象并使用Open()方法獲取指定表記錄。
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable
%>
代碼說(shuō)明如下:
本段代碼使用Open()方法獲取Group_Info表中的所有記錄。
Open()方法獲取表中的所有記錄或查詢(xún)的記錄,其語(yǔ)法格式如下:
rs.Open DataSource,Conn,CursorType,LockType,Options
語(yǔ)法格式說(shuō)明如下。
Rs:          Recordset對象實(shí)例。
DataSource:  可選項,可以為SQL語(yǔ)句、表名及存儲過(guò)程調用等。
Conn:        可選項,可以為Connection對象的實(shí)例或包含ConnectionStrin的字符串。
CursorType:  可選項,指定使用的游標類(lèi)型,其常用常量的值如表13-9所示。
LockType:    可選項,指定使用的鎖定類(lèi)型,其常用常量的值如表13-8所示。
Options:     可選項,指定執行DataSource的方法。


3、輸出記錄
可以使用下面的方式獲取記錄指定的字段內容:
rs(Name)
其中rs為Recordset對象實(shí)例,Name為字段的名稱(chēng),rs(Name)為當前記錄的Name字段的內容。
輸出所有記錄內容會(huì )用到Recordset對象的EOF或者BOF屬性,EOF屬性標識記錄指針是否移動(dòng)到最后一條記錄之后,即訪(fǎng)問(wèn)是否結束;BOF屬性用來(lái)標識記錄指針是否移動(dòng)到首條記錄之前。
下例使用Recordset對象輸出所有記錄的內容:
<%
If not rs.EOF then
Do while not rs.Eof
   Response.write "<font color='#FF0000'>職位:</font>"&rs("Name")&_
     "。<font color='#FF0000'>描述信息:</font>"&rs("Info")&"<BR>"
     ‘需要使用MoveNext把記錄指針移動(dòng)到下一條記錄
   rs.MoveNext
Loop
Else
Response.write "沒(méi)有記錄!"
End If
rs.close         ‘關(guān)閉recordset
Set rs=Nothing
Conn.Close
Set Conn=Nothing
%>


4、包含adovbs.inc文件
    本例使用多個(gè)常量,這些常量聲明后方可使用。ASP已經(jīng)提供了這些常量的定義值,ASP程序員不需要單獨定義這些常量。它們包含在文件adovbs.inc中,使用這些常量時(shí)需要包含這個(gè)文件。
adovbs.inc文件存放在系統盤(pán)中的Program Files\Common Files\System\ado目錄下,將該文件復制到指定的目錄下即可引用。本例將該文件復制到當前目錄下,使用下面的方式引用:
<!--# incl? file=”adovbs.inc”-->

13.3.2 分頁(yè)顯示記錄
    當查詢(xún)網(wǎng)站的記錄數目特別多時(shí),需要分頁(yè)顯示,分頁(yè)顯示需要確定記錄的數目。Recordset對象提供了RecordCount屬性,用于返回Recordset對象的記錄總數。


1、使用RecordCount屬性實(shí)現分頁(yè)顯示
下例使用RecordCount屬性實(shí)現分頁(yè)顯示。
(1)連接數據庫,下面是連接的數據庫代碼:
<%
'創(chuàng )建ADO DB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
        "Data Source="&Server.MapPath("oa.mdb")
Conn.Open '打開(kāi)與數據庫的連接
%>
(2)建立Recordset對象并獲取所有記錄,下面的代碼建立Recordset對象并使用Open()方法獲取所有的記錄:
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable
%>
(3)設置分頁(yè)參數,分頁(yè)時(shí)需要獲取記錄總數。設置每頁(yè)顯示的記錄數目,總頁(yè)數和當前頁(yè)數和代碼的如下:
<%
Dim rsCount 存儲記錄總的數目
‘獲取所有的記錄數目并賦給變量reCount
rsCount=rs.RecordCount
‘變量Page存儲總的頁(yè)數,PageSize為每頁(yè)顯示的記錄數目
Dim Page,PageSize
Dim n ‘用來(lái)存儲查詢(xún)過(guò)的記錄數
n=0   ‘初始值為0
‘設置每頁(yè)的記錄數目為2
PageSize=2
‘計算總的頁(yè)數
Page=rsCount/PageSize
‘獲取當前的頁(yè)數
PageNo=Trim(Reqst.QryString("Page"))
‘如果用戶(hù)指定的頁(yè)號為空,則使該頁(yè)的數值為第1頁(yè)
If PageNo="" Then PageNo=1
‘把頁(yè)號轉化成數值,如果不是數值,將出錯
PageNo=Cint(PageNo)
‘如果該值小于1,則使該值為1;如果為總頁(yè)數,則設置該值為總頁(yè)數
If PageNo<1 Then PageNo=1
If PageNo>Page Then PageNo=Page
%>
(4)顯示記錄,顯示指定頁(yè)的記錄要使記錄指針移動(dòng)到指定頁(yè)。本例創(chuàng )建一個(gè)計數器n,用于判斷記錄指針是否移動(dòng)到指定頁(yè)中的記錄。下面的代碼使記錄指針移動(dòng)到指定頁(yè)。但是這種方法效率不高,在14.5節中介紹了另一種分頁(yè)辦法,讀者可以參考:
<%
‘讀取所有的記錄
Do while not rs.Eof
‘判斷當前記錄是否是指定頁(yè)內的記錄,是,則輸出
If n>PageNo*PageSize and n<=PageSize*(PageNo+1) Then
   Response.write "<font color='#FF0000'>職位:</font>"&rs("Name")&_
     "。<font color='#FF0000'>描述信息:</font>"&rs("Info")&"<BR>"
End If
n=n+1   ‘記錄數目加1
rs.MoveNext   ‘讀取下一條記錄
Loop
%>
(5)顯示分頁(yè),下面的代碼顯示頁(yè)號連接,以方便用戶(hù)查詢(xún):
<%
‘顯示所有的分頁(yè)連接
For i=1 to Page
Response.write "<a href='13.3.2.asp?Page="&i&"'>第"&i&"頁(yè)</a> "
Next
%>
(6)關(guān)閉連接,代碼如下:
<%
rs.close
Set rs=Nothing
Conn.Close
Set Conn=Nothing
%>


2、使用AbsolutePage分頁(yè)
上例需要程序員設置和計算頁(yè)數,相對麻煩。Recordset對象提供了實(shí)現分頁(yè)的屬性,這樣屬性是AbsolutePage、PageCount和PageSize。下面是使用這幾個(gè)屬性實(shí)現分頁(yè)的示例。
(1)連接數據庫,代碼如下:
<%
'創(chuàng )建ADO DB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
        "Data Source="&Server.MapPath("oa.mdb")
Conn.Open '打開(kāi)與數據庫的連接
%>
(2)建立Recordset對象并獲取所有記錄,下面的代碼建立Recordset對象并使用Open()方法獲取所有的記錄。
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable
%>
(3)設置分頁(yè)參數,代碼如下:
<%
‘設置每頁(yè)顯示記錄的數目
rs.PageSize=2
Dim page              ‘保存總的頁(yè)數
page=rs.PageCount            ‘獲取總頁(yè)數
PageNo=Trim(Reqst.QryString("Page"))      ‘獲取讀取頁(yè)的頁(yè)碼
If PageNo="" Then PageNo=1
‘把指定頁(yè)的頁(yè)碼轉換成整數
PageNo=Cint(PageNo)
‘如果小于1,則設置該頁(yè)碼為1.
If PageNo<1 Then PageNo=1
‘如果指定頁(yè)的頁(yè)碼大于總頁(yè)數,則設置該頁(yè)碼為總頁(yè)數
If PageNo>Page Then PageNo=Page
‘設置當前頁(yè)為指定頁(yè)的頁(yè)碼
rs.AbsolutePage=PageNo
%>
代碼說(shuō)明如下:
PageSize屬性:每頁(yè)的記錄條數
PageCount屬性:表示Recordset對象的分頁(yè)總數。
AbsolutePage屬性:獲取或設置當前頁(yè)的頁(yè)碼。
(4)顯示當前頁(yè)記錄,代碼如下:
<%
‘顯示當前頁(yè)記錄,代碼如下:
For i=1 To rs.PageSize
   ‘如果記錄指針已經(jīng)移動(dòng)到最后一條記錄之后,則終止讀取記錄
If rs.EOF then exit for
Response.write "<font color='#FF0000'>職位:</font>"&rs("Name")&_
     "。<font color='#FF0000'>描述信息:</font>"&rs("Info")&"<BR>"
rs.movenext    ‘讀取下一條記錄
next
%>
(5)顯示頁(yè)號,代碼如下:
<%
For i=1 to Page
Response.write "<a href='13.3.2.asp?Page="&i&"'>第"&i&"頁(yè)</a> "
Next
%>
(6)關(guān)閉連接,代碼如下:
<%
rs.close
Set rs=Nothing
Conn.Close
Set Conn=Nothing
%>


 

13.3.3 添加和刪除記錄

Recordset對象屬的屬性和方法也可以添加和刪除記錄,Addnew()方法添加記錄,Delete()方法刪除記錄。下例使用這兩個(gè)方法添加和刪除記錄。


1、界面
界面中提供了一個(gè)表單,其中包括兩個(gè)文本框和一個(gè)“提交”按鈕。該例顯示所有的記錄,每個(gè)記錄都有“刪除”鏈接,添加記錄時(shí),數據提交到Insert.asp文件處理,刪除記錄由文件delete.asp實(shí)現。界面的實(shí)現代碼如下:
<!--#incl? file="adovbs.inc"-->
<html>
<head>
<meta http-equiv="Content-Lang ge" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建網(wǎng)頁(yè) 1</title>
</head>

<body>
<table ><tr><td>
<form method="POST" action="insert.asp">
<p>職位名稱(chēng):<input type="text" name="MingCheng" size="20"></p>
<p>職位描述:<input type="text" name="XinXi" size="20"></p>
<p><input type="s mit" val="提交" name="B1"><input type="reset" val="重置" name="B2"></p>
</form>
<%
'創(chuàng )建ADODB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")

'依據連接的數據庫設置連接字符串
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
        "Data Source="&Server.MapPath("oa.mdb")
Conn.Open '打開(kāi)與數據庫的連接
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable
Do While not rs.EOF
Response.write rs("Name")&" <a href='delete.asp?id="&rs("ID")&"'>刪除</a><BR>"
rs.movenext
Loop
rs.close
Set rs=Nothing
Conn.Close
Set Conn=Nothing
%>
</td></tr></table>
</body>
</html>


2、添加記錄
下面的代碼獲取的記錄信息添加到表中:
<!--#incl? file="adovbs.inc"-->
<%
'創(chuàng )建ADODB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
        "Data Source="&Server.MapPath("oa.mdb")
Conn.Open '打開(kāi)與數據庫的連接
Set rs=Server.CreateObject("ADODB.Recordset")
'打開(kāi)指定的表
rs.Open "Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable
'獲取添加記錄的信息
Name=Reqst.Form("MingCheng")
Info=Reqst.Form("XinXi")
Response.write Name&Info
'使用Addnew方法添加一條記錄
rs.AddNew Array("name","Info"),Array(Name,Info)
rs.Update    '更新記錄
rs.close
Set rs=Nothing
Conn.Close
Set Conn=Nothing
%>
代碼說(shuō)明如下:
AddNew()方法在數據庫中添加記錄,其語(yǔ)法格式如下:
Rs.AddNew Field,Vals
其中,Field是可選項,可以為記錄字段的名稱(chēng)或一組記錄的名稱(chēng);Val也是可選項,為新記錄中的字段值或者一組字段的值。
AddNew()方法添加記錄后需要使用Update()方法更新記錄后才能添加成功。
Update()方法用來(lái)保存在數據庫中添加的記錄,其語(yǔ)法格式如下:
Rs.Update Field,Val
其中Field是可選項,可以為記錄字段的名稱(chēng)或一組記錄的名稱(chēng);Vals也是可選項,為新記錄中的字段值或者一組字段的值。


3、刪除記錄
下面是刪除用戶(hù)指定記錄的代碼:
<!--#incl? file="adovbs.inc"-->
<%
'創(chuàng )建ADODB.Connection對象
Set Conn=Server.Createobject("Adodb.Connection")
'依據連接的數據庫設置連接字符串
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
        "Data Source="&Server.MapPath("oa.mdb")
Conn.Open '打開(kāi)與數據庫的連接
Set rs=Server.CreateObject("ADODB.Recordset")
'獲取用戶(hù)指定的記錄序號
ID1=Reqst.Qry("ID")
Dim Sql
'設置查詢(xún)該記錄的SQL語(yǔ)句
sql="SELECT * FROM [Group_Info] WHERE [ID]="&ID1
'查詢(xún)記錄
rs.Open sql.,Conn,adOpenKeyset,,adCmdTable
rs.Delete     '刪除查詢(xún)記錄集中的記錄
rs.Update     '更新數據庫
rs.close    
Set rs=Nothing
Conn.Close
Set Conn=Nothing
%>
記錄主要使用Delete()方法實(shí)現,其語(yǔ)法格式如下:
Rs.Delete AffectRecords
其中Rs為Recordset對象實(shí)例,AffectRecords參數指定操作所影響的記錄數目,常用的常量值如表13-13所示。
表13-13 AfferRecords參數的常用常量值
常量                      說(shuō) 明
AdAffectCurrent       默認值,僅刪除當前記錄
AdAffectGroup         刪除滿(mǎn)足Filter屬性設置記錄
adAffectAll           刪除所有記錄
adAffectAllChapters   刪除所有子記錄


 

13.3.4 跳轉到指定記錄

Recordset對象提供的方法和屬性既可以實(shí)現分頁(yè)顯示的功能,也可以實(shí)現跳轉頁(yè)面的功能。下例跳轉到指定記錄或第1條和最后一條目錄,其界面如圖13-17所示。
該例的實(shí)現流程如下:
(1)連接數據庫。
(2)獲取操作類(lèi)型。
(3)查詢(xún)數據庫中的表。
(4)依據操作類(lèi)型設置記錄指針。
(5)判斷指針是否到尾記錄,是,則轉(7).
(6)顯示記錄信息
(7)結束。


1、連接數據庫
代碼如下:
<%
Set Conn=Server.Createobject("Adodb.Connection")
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
        "Data Source="&Server.MapPath("user.mdb")
Conn.Open
%>


2、獲取操作類(lèi)型
在本例中,變量action標識操作類(lèi)型。Action值為“First”,表示將記錄指針移動(dòng)到首記錄:為“Last”,表示將記錄指針移動(dòng)到尾記錄;為“1”,表示將記錄向前,或向后移動(dòng)指定數目的指針,獲取操作類(lèi)型的代碼如下:
<%
action=Trim(Reqst,QryString("action"))
%>
查詢(xún)表的代碼如下:
<%
sql="select * from Goods"          '設置查詢(xún)表的SQL語(yǔ)句
Set rs=Conn.Exectute(sql)    '執行該查詢(xún)并將結果輸出到rs記錄集中
%>
依據操作類(lèi)型顯示記錄的代碼如下:
<%
'下面輸出所有的記錄,使用recordset對象的屬性判斷記錄訪(fǎng)問(wèn)是否結束
Do while not rs.Eof
If action="First" Then
'將記錄指針移動(dòng)到首記錄
rs.MoveFirst
'將action賦值為空,否則會(huì )每次死循環(huán)狀態(tài)
action="";
ElseIf action=“Last” then
   '將記錄指針移動(dòng)到尾記錄
   rs.MoveLast
   action=""
ElseIf IsNumeric(action) Then
   '獲取用戶(hù)輸入的字符并轉換成數字
   Action=Cint(reqst.Form("T1"))
   '將記錄指針向前或向后移動(dòng)指定的數目
   rs.Move action
   action=""
else
   '向后移動(dòng)一個(gè)記錄
   rs.MoveNext
End If
If not rs.EOF Then Response.write rs("Name")&"<BR>"
Loop
%>
代碼說(shuō)明如下:
該段代碼使用了Recordset對象的MoveFirst()、MoveLast()、MoveNext()和Move()方法移動(dòng)記錄指針。
MoveFirst()方法把Recordset對象的記錄指針移動(dòng)到第1條記錄。使用該方法時(shí),CursorType屬性只能為adOpenForwardOnly,其語(yǔ)法格式如下:
Rs.MoveFirst
其中rs為Recordset對象實(shí)例。
MoveLast()方法把Recordset對象的記錄指針移動(dòng)到最后一條記錄。如果Recordset對象不支持書(shū)簽功能,執行時(shí)會(huì )出現錯誤。其語(yǔ)法格式如下:
Rs.MoveLast
MoveNext()方法把Recordset對象的記錄指針移動(dòng)到下一條記錄。
Move()方法把記錄指針向前或者向后移動(dòng)指定的數目。
使用Recordset對象的EOF屬性判斷訪(fǎng)問(wèn)是否結束。Recordset對象還有一個(gè)類(lèi)似屬性BOF,該屬性用來(lái)標識記錄指針是否移動(dòng)到首條記錄之前。


3、交互界面
交互界面包含兩個(gè)鏈接,一個(gè)文本框和兩個(gè)按鈕,實(shí)現代碼如下:
<a href="13.3.5.asp?action=First">首記錄</a>    <a href="13.3.5.asp?action=Last">尾記錄</a>
   <form method="POST" action="13.3.5.asp?action=1">
<p><input type="text" name="T1" size="20">
<input type="s mit" val="提交" name="B1">
<input type="reset" val="重置" name="B2"></p>
   </form>

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
關(guān)于recordcount等-1的問(wèn)題
ASP教程:第十五篇 常用的ASP ActiveX組件
VB通過(guò)ADO連接SQL數據的兩種方法
Recordset對象操作數據庫語(yǔ)法_湘
6大對象和數據庫操作簡(jiǎn)單學(xué)
VBA連接Mysql數據庫
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久