![ASP數(shù)據(jù)庫實際操作基礎_第1頁](http://file4.renrendoc.com/view/66733cf40a55dd730bef4802af44a123/66733cf40a55dd730bef4802af44a1231.gif)
![ASP數(shù)據(jù)庫實際操作基礎_第2頁](http://file4.renrendoc.com/view/66733cf40a55dd730bef4802af44a123/66733cf40a55dd730bef4802af44a1232.gif)
![ASP數(shù)據(jù)庫實際操作基礎_第3頁](http://file4.renrendoc.com/view/66733cf40a55dd730bef4802af44a123/66733cf40a55dd730bef4802af44a1233.gif)
![ASP數(shù)據(jù)庫實際操作基礎_第4頁](http://file4.renrendoc.com/view/66733cf40a55dd730bef4802af44a123/66733cf40a55dd730bef4802af44a1234.gif)
![ASP數(shù)據(jù)庫實際操作基礎_第5頁](http://file4.renrendoc.com/view/66733cf40a55dd730bef4802af44a123/66733cf40a55dd730bef4802af44a1235.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
ASP數(shù)據(jù)庫實際操作基礎使用ASP技術設計網(wǎng)頁,把數(shù)據(jù)庫放到網(wǎng)頁的后面,使用戶不必直接操作數(shù)據(jù)庫,而是通過網(wǎng)頁來使用數(shù)據(jù)庫,這樣用戶可以方便靈活的,在自己權限范圍內(nèi)操作數(shù)據(jù)庫。2023/3/20章節(jié)內(nèi)容本章的主要內(nèi)容是:數(shù)據(jù)庫存取組件Connection對象Command對象Recordse對象2023/3/209.1數(shù)據(jù)庫存取組件數(shù)據(jù)庫存取組件(DatabaseAccessComponent)是使用ADO(ActiveXDataObjects)技術來存取符合ODBC標準的數(shù)據(jù)庫或者具有表格狀數(shù)據(jù)形式的一種ASP內(nèi)置組件。ADO數(shù)據(jù)庫存取組件(以下簡稱ADO)可以兼容大部分的數(shù)據(jù)庫,本書主要介紹ADO對ACCESS數(shù)據(jù)庫的存取操作。2023/3/209.1數(shù)據(jù)庫存取組件ADO數(shù)據(jù)庫存取組件主要包括三個對象Connection對象又叫連接對象,主要用來在ASP文件和數(shù)據(jù)庫之間建立連接,為兩者間的信息傳遞提供通道,是Command對象的基礎。Command對象又叫命令對象,主要對數(shù)據(jù)庫執(zhí)行操作,包括:增加、刪除、修改和查詢四種常用的操作。Recordse對象又叫記錄集對象,如果對數(shù)據(jù)庫執(zhí)行查詢操作,就會返回一個記錄集合,包含滿足條件的記錄。2023/3/20ADO的使用方法三個對象擁有豐富的屬性和方法,使用靈活多樣,為了便于大家掌握,本書對三個對象的主要屬性和方法進行說明的同時,提供了一種比較科學的和完整的使用方法。ADO對象的使用方法是:首先使用Connection對象建立和數(shù)據(jù)庫的連接,然后使用Command對象執(zhí)行對數(shù)據(jù)庫的操作,如果執(zhí)行的操作時查詢,使用Recordset對象獲取查詢的結果。2023/3/209.2Connection對象功能概述:使用ADO對數(shù)據(jù)庫進行操作,首先要依靠Connection對象在網(wǎng)頁和數(shù)據(jù)庫之間建立連接。使用方法:首先創(chuàng)建Connection對象,然后設置Connection對象的屬性,最后執(zhí)行Connection對象的相應方法。2023/3/20對象的創(chuàng)建Connection對象的創(chuàng)建語法如下:SetConnection對象=Server.Createobject(“Adodb.Connection”)例如:<%dimdbcnsetdbcn=server.createobject(“adodb.connection”)%>2023/3/209.2.2Connection對象常用的屬性Connectionstring:用于指定Connection對象的數(shù)據(jù)庫連接信息。它的取值可以有兩種:數(shù)據(jù)源或連接字符串。語法為:Connection對象.Connectionstring=數(shù)據(jù)源或連接字符串
Connectiontimeout:用于指定Connection對象的Open方法打開與數(shù)據(jù)庫的連接所需的最長時間,單位是秒。該屬性的默認值為15秒,如果設定為0,表示一直連接下去,直到連通為止。語法為:Connection對象.Connectiontimeout=整數(shù)
2023/3/20對象常用的方法Open:打開與數(shù)據(jù)庫的連接。在使用open方法前要設置Connectionstring屬性,這是它的操作對象。語法為:Connection對象.OpenClose:關閉一個已經(jīng)打開的ASP網(wǎng)頁文件和數(shù)據(jù)庫之間的連接。當連接關閉了,Connection對象依然存在,但依賴于Connection對象的Command對象和Recordset對象將不能使用。語法為:Connection對象.close2023/3/20使用數(shù)據(jù)源和連接字符串Connection對象的Connectionstring屬性用于設置對數(shù)據(jù)庫的連接,它的取值有兩種,分別是使用數(shù)據(jù)源(ODBC)和使用連接字符串。2023/3/20使用數(shù)據(jù)源數(shù)據(jù)源就是數(shù)據(jù)源開放數(shù)據(jù)庫連接(ODBC),利用它可以訪問來自多種數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)。數(shù)據(jù)源采用統(tǒng)一的方法訪問各種數(shù)據(jù)庫管理系統(tǒng),并提供給應用程序統(tǒng)一的接口,這樣應用程序不必關心如何連接具體的那種數(shù)據(jù)庫管理系統(tǒng),而只需要使用數(shù)據(jù)源,就可以操作各種數(shù)據(jù)庫了。請看數(shù)據(jù)庫連接實例2023/3/20使用數(shù)據(jù)源創(chuàng)建Connection對象,使用數(shù)據(jù)源與數(shù)據(jù)庫連接,代碼如下:<%dimdbcn‘創(chuàng)建Connection對象setdbcn=server.createobject(“adodb.connection”)‘通過屬性設置連接的數(shù)據(jù)庫信息Dbcn.connectionstring="DSN=CJGL"dbcn.connectiontimeout=30Dbcn.open‘打開連接‘書寫代碼,執(zhí)行對數(shù)據(jù)庫的操作,根據(jù)需要處理操作的結果……‘執(zhí)行完操作,關閉連接Dbcn.closeSetdbcn=nothing‘不再使用時,注銷connection對象%>2023/3/20使用連接字符串數(shù)據(jù)源連接數(shù)據(jù)庫管理系統(tǒng)需要具有在服務器上創(chuàng)建數(shù)據(jù)源的權限,而且移植到另一臺服務器上需要重新設置數(shù)據(jù)源,而使用數(shù)據(jù)庫連接字符串則沒有這些問題。對Access數(shù)據(jù)庫使用數(shù)據(jù)庫連接字符串需要用到兩個參數(shù)Dbq和Driver,Dbq的取值是數(shù)據(jù)庫的物理路徑,Driver的取值是數(shù)據(jù)庫的類型。2023/3/20直接使用物理路徑下面使用連接字符串作為ConnectionString屬性的取值。例如:CJGL.mdb數(shù)據(jù)庫文件在C:\Inetpub\\chapter10文件夾中,可以設置為:<%Dbcn.connectionstring=“Dbq=C:\Inetpub\\chapter10\CJGL.mdb;Driver={MicrosoftAccessDriver(*.mdb)}”%>2023/3/20轉(zhuǎn)換使用物理路徑在實際的開發(fā)中為了方便移植,可以利用Server對象的Mappath方法,將虛擬路徑轉(zhuǎn)變?yōu)閷嶋H的物理路徑。語法為:Server.Mappath(虛擬路徑字符串)如果數(shù)據(jù)庫文件和當前ASP文件在同一個文件夾中,可以直接寫數(shù)據(jù)庫文件名,上例可以修改為:<%Dbcn.connectionstring=“Dbq=”&Server.mappath(“CJGL.MDB”)&“;Driver={MicrosoftAccessDriver(*.mdb)}”%>如果數(shù)據(jù)庫文件和ASP文件不在同一個文件夾,要書寫數(shù)據(jù)庫文件相對于ASP文件的路徑。為了方便管理,經(jīng)常在網(wǎng)頁的根目錄下,建立專門的文件夾存放數(shù)據(jù)庫文件。例如:當前網(wǎng)頁在根目錄下,并且在根目錄下建立Data文件夾存放CJGL.MDB數(shù)據(jù)庫文件,ConnectionString屬性設置如下:<%Dbcn.connectionstring=“Dbq=”&Server.mappath(“Data\CJGL.MDB”)&“;Driver={MicrosoftAccessDriver(*.mdb)}”%>2023/3/20字符串連接數(shù)據(jù)庫完整的示例<%dimdbcn’創(chuàng)建connection對象setdbcn=server.createobject(“adodb.connection”)‘通過屬性設置連接的數(shù)據(jù)庫信息Dbcn.connectionstring=“Dbq=”&Server.mappath(“Data\CJGL.MDB”)&“;Driver={MicrosoftAccessDriver(*.mdb)}”dbcn.connectiontimeout=30‘設置連接執(zhí)行的最長時間Dbcn.open‘打開連接‘書寫代碼執(zhí)行對數(shù)據(jù)庫的操作,根據(jù)需要處理操作的結果……Dbcn.close‘執(zhí)行完操作,關閉連接Setdbcn=nothing‘不再使用時,注銷connection對象%>2023/3/209.3Command對象Command對象主要功能是對數(shù)據(jù)庫執(zhí)行操作。該對象利用connection對象提供的連接通道,在ASP網(wǎng)頁文件和數(shù)據(jù)庫間傳遞對數(shù)據(jù)庫的操作命令。Command對象的使用方法是:首先創(chuàng)建Connection對象,設置Connection對象的屬性,并打開與數(shù)據(jù)庫的連接,然后設置Command對象的屬性,執(zhí)行Command對象的方法,如果是查詢操作,還要創(chuàng)建Recordset對象接收查詢的結果。2023/3/20對象的創(chuàng)建Command對象的創(chuàng)建類似于connection對象,要使用server對象的createobject方法。Command對象的創(chuàng)建語法如下:<%SetCommand對象=Server.Createobject(“Adodb.Command”)%>例如:<%dimdbcmdsetdbcmd=server.createobject(“Adodb.Command”)%>2023/3/20對象的屬性ActiveConnection:設置Command對象需要使用的那個connection對象作為連接。該屬性取值為已經(jīng)打開的connection對象。語法為:Command對象.Activeconnection=connection對象Commandtext:設置對數(shù)據(jù)庫的操作命令。它的取值可以是SQL語句、表名或查詢名。語法為:Command對象.Commandtext=SQL語句、表名和查詢名2023/3/20Command對象的屬性Commandtype:該屬性設置操作命令的類型,即說明Commandtext屬性取值的類型。語法為:Command對象.Commandtype=屬性值在存取Access數(shù)據(jù)庫中常用的取值如表所示:數(shù)值 說明-1有系統(tǒng)自己判定1SQL語句2表名4查詢名2023/3/20Command對象的屬性Commandtimeout:設置Command對象的execute方法的最長執(zhí)行時間,單位是秒。默認值是30秒,可以根據(jù)需要設置大小,如果要無限制的執(zhí)行下去,則設置為0。語法為:Command對象.Commandtimeout=整數(shù)值Prepared:設置Commandtext屬性所指定的操作命令是否先行編譯,存儲。對于經(jīng)常使用的查詢語句,可以將它進行編譯、存儲,第一遍執(zhí)行時會慢一些,以后執(zhí)行時,速度可以明顯加快。它的取值為True或False。語法為:Command對象.Commandtimeout=True或False2023/3/20對象的方法Execute:執(zhí)行對數(shù)據(jù)庫的各種操作。對數(shù)據(jù)庫的操作可以歸納為增加、刪除、更新和查詢。如果執(zhí)行增加、刪除和更新操作,沒有返回值。語法為:Command對象.execute如果執(zhí)行查詢操作,則返回一個記錄集合,需要創(chuàng)建一個recordset對象來接受這個記錄集。關于recordset對象的主要使用方法在9.4節(jié)做詳細的介紹,這里給出一種較簡單的創(chuàng)建方法。語法為:Setrecordset對象=Command對象.executeCreateparameter:創(chuàng)建parameter子對象,主要用于參數(shù)查詢。在小節(jié)對參數(shù)查詢作詳細的介紹。2023/3/20在Command對象中使用SQL語句通過設置Command對象的Commandtext屬性,可以使用SQL語句、表和查詢對數(shù)據(jù)庫進行存取,其中使用SQL語句是最簡單的形式。語法為:Command對象.Commandtext=SQL語句SQL語句中的條件部分對數(shù)據(jù)進行篩選,條件可以是常量表達式或者變量表達式,下面分別介紹兩種形式的SQL語句在Command對象中的應用??梢韵仍跀?shù)據(jù)庫中調(diào)試好SQL語句,然后拿過來用。2023/3/201.常量條件這類SQL語句中,條件表達式是確定的。例如:查詢女同學的信息,對應的SQL語句為:Select*fromxsxxwherexb="女"把該語句設置為Command對象的Commandtext屬性,如下<%dbcmdmandtext="Select*fromxsxxwherexb='女'"%>2023/3/202.變量條件這類SQL語句中,條件表達式是確定的。例如:查詢女同學的信息,對應的SQL語句為:Select*fromxsxxwherexb="女"把該語句設置為Command對象的Commandtext屬性,如下<%dbcmdmandtext="Select*fromxsxxwherexb='女'"%>2023/3/20在Command對象中使用表和非參數(shù)查詢1.使用表有的時候我們需要獲取整個表的全部數(shù)據(jù),這種情況下可以設置commandtext屬性取值為相應的表名。語法為:Command對象.Commandtext=表名2.使用非參數(shù)查詢通過設置commandtext屬性的取值為查詢名,可以執(zhí)行相應的查詢。這樣做的好處有三個:(1)在Access數(shù)據(jù)庫中創(chuàng)建查詢比在網(wǎng)頁中直接書寫SQL語句更容易,更方便。(2)在Access數(shù)據(jù)庫中創(chuàng)建查詢更安全,這樣在網(wǎng)頁屏蔽了數(shù)據(jù)庫的結構信息,減小了系統(tǒng)風險。(3)在Access數(shù)據(jù)庫中創(chuàng)建查詢,在網(wǎng)頁中引用查詢名,使數(shù)據(jù)庫的設計開發(fā)和網(wǎng)頁程序的開發(fā)相對獨立,便于分工合作。2023/3/20使用參數(shù)查詢在數(shù)據(jù)庫中使用參數(shù)查詢可以由用戶決定查詢的內(nèi)容,類似前面的在SQL語句中使用變量的形式。在Command對象中使用參數(shù)查詢的方法是:首先創(chuàng)建參數(shù)對象Parameter,然后把參數(shù)變量添加到參數(shù)集合Parameters,最后設置Command對象的屬性,執(zhí)行查詢操作。2023/3/201.創(chuàng)建參數(shù)對象Command對象提供了Createparameter方法創(chuàng)建參數(shù)對象,語法為:SetParameter對象=Command對象.Createparameter(name,type,direction,size,value)參數(shù)說明Name參數(shù)名稱Type參數(shù)類型可以省略Direction參數(shù)方向可以省略Size參數(shù)大小可以省略Value參數(shù)值2023/3/20參數(shù)說明變長字符串200雙精度5單精度4整數(shù)類型3時間日期類型135說明取值Type參數(shù)取值取值說明1傳入(默認值)2傳出3傳入傳出Direction參數(shù)取值2023/3/20示例<%'定義相關變量dimprm_name,prm_type,prm_direction,prm_size,prm_valueprm_name="cxkc"'參數(shù)名稱,在數(shù)據(jù)庫查詢中使用prm_type=200'參數(shù)類型,200表示變長字符串prm_direction=1'參數(shù)方向,1表示輸入prm_size=60'參數(shù)大小,20個字節(jié)prm_value=cs_kcbh'參數(shù)值,從表單中獲取的值dimprm'創(chuàng)建參數(shù)對象setprm=dbcmd.Createparameter(prm_name,prm_type,prm_direction,prm_size,prm_value)%>2023/3/202.添加到參數(shù)對象集合Command對象擁有一個參數(shù)集合Parameters,必須把創(chuàng)建的參數(shù)加入到參數(shù)集合中。參數(shù)集合Parameters的方法Append可以增加參數(shù),語法為:Command對象.Parameters.AppendParameter對象例如:把上例中創(chuàng)建的參數(shù)加入到Command對象的參數(shù)集合中,代碼如下:<%dbcmd.parameters.appendprm%>2023/3/20對象操作示例1.查詢操作2.增加操作3.刪除操作4.更新操作2023/3/209.4Recordset對象如果Command對象對數(shù)據(jù)庫執(zhí)行的是查詢操作,那么從數(shù)據(jù)庫中返回到ASP文件的查詢結果要創(chuàng)建recordset對象來接受。Recordset對象和前面介紹的數(shù)據(jù)庫中的表有相似的地方,由字段名構成記錄集的結構,下面是數(shù)據(jù)區(qū)域,如圖所示。數(shù)據(jù)區(qū)域有兩個特殊的位置bof和eof,bof是記錄集數(shù)據(jù)區(qū)域的開始,eof是記錄集數(shù)據(jù)區(qū)域的結尾,中間位置是記錄的集合。在數(shù)據(jù)區(qū)域中存在一個指針,指針可以在bof、eof和記錄間移動。當指針指向一條記錄時,那條記錄就是當前記錄,只能對當前記錄操作,任何時候當前記錄只能有一條。2023/3/20Recordset對象示意圖圖9.11Recordset對象2023/3/20創(chuàng)建Recordset對象前面我們介紹一種簡單的recordset對象創(chuàng)建的方法,由Command對象的execute方法執(zhí)行,直接創(chuàng)建。語法為:SetRecordset對象=Command對象.execute這種方法中Recordset對象的屬性采用的默認值,不能完全使用Recordset對象的功能。下面提供另外的使用方法:創(chuàng)建Recordset對象對象,然后設置Recordset對象的屬性,最后執(zhí)行Recordset對象的方法。首先介紹Recordset對象的創(chuàng)建方法,Recordset對象的創(chuàng)建和connection對象,Command對象的創(chuàng)建相似,要使用server對象的Createobject方法。語法為:<%SetRecordset對象=Server.Createobject(“Adodb.Recordset”)%>2023/3/20對象的屬性Source:用于設置數(shù)據(jù)庫的查詢信息,可以是SQL語句、表或查詢。語法為:Recordset對象.Source=SQL語句、表和查詢Activeconnection:用于設置數(shù)據(jù)庫的連接信息,可以是數(shù)據(jù)源、連接字符串或者connection對象。其中connection對象必須已經(jīng)打開。語法為:Recordset對象.Activeconnection=數(shù)據(jù)源、連接字符串或者connection對象2023/3/20對象的屬性Cursortype:設置記錄集中指針的類型。語法為:Recordset對象.Cursortype=取值2023/3/20Cursortype取值取值說明0向下指針,只能利用movenext方法向下移動,默認值。1鍵盤指針,可以向下向上移動。能夠看到其他用戶所做的修改,但是看不到增加和刪除的記錄。2動態(tài)指針,可以向下向上移動。能夠看到其他用戶所做的增加,刪除和修改的記錄。3靜態(tài)指針,可以向下向上移動。不能看到其他用戶所做的修改,增加和刪除的記錄。2023/3/20Recordset對象的屬性Bof:該屬性用于判斷指針當前是否在記錄集的開頭,如果在開頭返回true,否則返回false。語法為:Recordset對象.BofEof:該屬性用于判斷指針當前是否在記錄集的結尾,如果在結尾返回true,否則返回false。語法為:Recordset對象.Bof當Bof和Eof取值都為true時,記錄集為空,因此可以使用這種方法判斷記錄集是否為空集,不為空對應的代碼位為:<%Ifdbrs.notofandnotbrs.bofthen……endif%>2023/3/20Recordset對象的屬性Recordcount:返回記錄集中記錄總數(shù)。該屬性要求Cursortype屬性為1或者3,否則出錯。2023/3/20對象的方法Recordset對象方法比較多,這里選取了常用的方法,并分成兩組:基本方法和記錄定位方法。首先介紹基本方法。Open方法:打開記錄集,設置完成記錄集的屬性,可以打開記錄集。打開記錄集時,如果記錄集不空,指針指向第一條記錄;為空時,bof和eof重合,指針指向同一位置。語法為:Recordset對象.openClose方法:關閉記錄集,當不再使用時及時關閉。語法為:Recordset對象.closeRecordset對象的用法很靈活,這里介紹兩種常用的方法:使用command對象直接創(chuàng)建使用open方法打開記錄集2023/3/201.使用command對象直接創(chuàng)建這種方法前面已經(jīng)介紹過,使用command對象的execute方法,直接創(chuàng)建一個Recordset對象。語法為:SetRecordset對象=Command對象.execute此時Recordset對象對象的屬性都是默認值,因此功能弱一些。2023/3/202.使用open方法打開記錄集這種方法首先設置Recordset的屬性,然后執(zhí)行open方法。Recordset的屬性中activeconnection屬性的取值比較靈活,如下:Recordset對象.Activeconnection=數(shù)據(jù)源、連接字符串或已打開的connection對象2023/3/20記錄集的操作通過Command對象可以直接對數(shù)據(jù)進行增加、刪除和修改,記錄集可以完成這些功能,但記錄集的主要操作是讀取并顯示數(shù)據(jù)。本書主要介紹使用記錄集讀取數(shù)據(jù),操作分為兩部分:記
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物技術藥物研發(fā)合同
- 私人訂制戶外探險活動服務協(xié)議
- 智能家居系統(tǒng)與節(jié)能照明合作協(xié)議
- 數(shù)據(jù)挖掘技術在企業(yè)決策支持系統(tǒng)中的應用合作協(xié)議
- 精密電子元器件采購合同
- 離婚標準協(xié)議書車輛分配
- 裝修公司合同保密協(xié)議
- 信用社借款展期合同協(xié)議書
- 教育培訓合作項目實施協(xié)議
- 建筑施工臨時承包合同
- 地下礦山安全教育課件
- 國際市場營銷教案
- 全球變暖對工業(yè)企業(yè)的影響
- 《中醫(yī)藥健康知識講座》課件
- 2024年中國陪診服務行業(yè)市場發(fā)展趨勢預測報告-智研咨詢重磅發(fā)布
- 藝術欣賞與實踐(高職)全套教學課件
- 轉(zhuǎn)基因調(diào)查分析報告
- 英語-時文閱讀-7年級(8篇)
- 只有偏執(zhí)狂才能生存讀書心得
- 數(shù)據(jù)挖掘(第2版)全套教學課件
- 產(chǎn)學研融合創(chuàng)新合作機制
評論
0/150
提交評論