




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
使用ActiveX數(shù)據(jù)對象(ADO),可以對多種數(shù)據(jù)提供者的數(shù)據(jù)進(jìn)行操作。例如,可以使用ADO來訪問Access、MicrosoftSQL和Oracle數(shù)據(jù)庫中的信息,可以使用ADO從MicrosoftExcel表格中讀取信息。在一個ASP網(wǎng)頁中使用了一些ADO的常量,這些常量包含在一個名為ADOVBS.inc的特殊文件里。一般來說,ADOVBS.inc被安裝在C:\ProgramFiles\CommonFiles\System\ADO目錄下。要使用該文件常量,要將該文件拷入ASP程序所在的目錄。
10.6使用ADO的數(shù)據(jù)對象10.6.1配置服務(wù)器以使用ActiveX數(shù)據(jù)對象
MicrosoftSQLServer必須與Web服務(wù)器安裝在同一臺機(jī)器上,或者在同一個網(wǎng)絡(luò)中。雖然ADO連接到數(shù)據(jù)庫有多種方式,但在下面的例子中均采用數(shù)據(jù)源(DSN)方式。因此在能夠使用ADO之前,必須先建立一個數(shù)據(jù)源。當(dāng)要建立一個與Web服務(wù)器一起使用的數(shù)據(jù)源時,最好建立一個系統(tǒng)數(shù)據(jù)源,確保所有的用戶都能通過該數(shù)據(jù)源連接到數(shù)據(jù)庫。注意:在建立一個數(shù)據(jù)源之前,應(yīng)確保SQLServer正在運(yùn)行。按如下步驟可以建立一個新的文件數(shù)據(jù)源:(1)打開Windows控制面板(選擇Start|Setting|ControlPanel)。(2)單擊ODBC的圖標(biāo)。單擊SystemDSN標(biāo)簽;單擊Add按鈕,出現(xiàn)CreateNewDataSource對話框;在該對話框中,選擇SQLServer驅(qū)動程序并單擊Next按鈕,根據(jù)提示向?qū)?chuàng)建。現(xiàn)在你已經(jīng)建立了一個名為mydsn的新數(shù)據(jù)源,該數(shù)據(jù)源連接到MicrosoftSQLServer上的TestDB數(shù)據(jù)庫。10.6.1配置服務(wù)器以使用ActiveX數(shù)據(jù)對象(2)10.6.2使用連接對象【例10.1】在測試數(shù)據(jù)庫TestDb中創(chuàng)建表Feedback。表Feedback用來記錄客戶網(wǎng)上反饋信息,它有4個字段,分別用來存儲e_mail地址、IP地址、反饋輸入的時間和反饋信息的內(nèi)容。下面用ASP文件(samp10-01.asp)實(shí)現(xiàn)。<!--#INCLUDEfile="ADOVBS.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection")MyConn.Open"DSN=Mydsn;uid=sa;pws=;database=TestDb"'createanewtable10.6.2使用連接對象(2)MySQL="CREATETABLEFeedback(email varchar(100)"&_ ",IPAddrchar(16)"&_ ",Contentsvarchar(254)"&_ ",Logdatesmalldatetime default getdate())"MyConn.ExecuteMySQLiferr.number=0thenresponse.write"創(chuàng)建成功!"Else response.write"創(chuàng)建失敗!"endifMyconn.Close:setmyconn=nothing%>
在這個例子中,創(chuàng)建了連接對象的一個實(shí)例MyConn。然后調(diào)用連接對象的open方法打開該連接,接下來調(diào)用連接對象的Execute方法,執(zhí)行一個SQL語句創(chuàng)建表FeedBack,最后關(guān)閉這個連接。10.6.2使用連接對象(3)【例10.2】向數(shù)據(jù)庫TestDb中的表Feedback插入兩條記錄,并且要求同時插入。本題要求兩個插入語句構(gòu)成一個事務(wù)處理。當(dāng)一組語句構(gòu)成一個事務(wù)處理時,如果一個語句沒有執(zhí)行成功,則所有的語句都不成功。下面用ASP文件(samp10-02.asp)實(shí)現(xiàn)。<!--#INCLUDEfile="ADOVBS.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection")MyConn.Open"DSN=Mydsn;uid=sa;pes=;database=Test"sSql="insertFeedBackValues"&_"('webmail@','','測試事務(wù)','2005-01-01')"&_"insertFeedBackValues"&_"('webmail1@','','測試事務(wù)','2005-01-01')"10.6.2使用連接對象(4)onerrorresumenextMyConn.BeginTransMyConn.ExecutesSqliferr.number=0thenobjConn.CommitTransresponse.write"插入成功!"else objConn.Roallback response.write"插入失??!"endifobjConn.closesetobjConn=nothing%>10.6.3使用記錄集對象要使用記錄集對象,必須首先創(chuàng)建記錄集對象的一個實(shí)例,可以使用連接對象的Execute()方法,也可以使用Command對象的Execute方法和Recordset對象的Open方法。當(dāng)從一個數(shù)據(jù)庫返回查詢結(jié)果時,一個記錄集對象便被創(chuàng)建了?!纠?0.3】
分頁顯示反饋表中的數(shù)據(jù)(ASP文件samp10-03.asp)。<!--#Includefile="adovbs.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection") '打開數(shù)據(jù)庫進(jìn)行檢索MyConn.Open"DSN=Mydsn;uid=sa;pws=;database=TestDb"setrs=server.createobject("ADODB.Recordset") '創(chuàng)建記錄集對象sql="SELECTemail,ipaddr,contents,logdateFROMfeedbackORDERBYlogdateDESC"rs.opensql,myconn,adOpenKeyset,adLockOptimistic,adCmdText'setrs=myconn.execute(sql)10.6.3使用記錄集對象(2)ifrs.eofandrs.bofthen response.write"<center>目前沒有反饋信息!</center>" response.endelsers.pagesize=2'確定每頁記錄數(shù)ifrequest.querystring("PageNo")=""then 'pageno為當(dāng)前顯示頁號PageNo=1 '第一頁elsePageNo=clng(request.querystring("PageNo")) '讀取當(dāng)前顯示頁號endifrs.absolutepage=pageno'設(shè)置記錄集當(dāng)前頁endif%><html><head><title>顯示反饋信息</title>(以后程序省略)10.6.4使用命令對象
命令對象代表一個命令(例如,一個SQL查詢或一個SQL存儲過程),是特別為處理命令的各方面問題而創(chuàng)建的。實(shí)際上,當(dāng)從連接對象中運(yùn)行一條命令時,已經(jīng)隱含地創(chuàng)建了一個命令對象。使用命令對象允許指定輸入?yún)?shù)、輸出參數(shù)和命令執(zhí)行后的返回值等(比如,數(shù)據(jù)類型和長度)。
1.使用命令對象執(zhí)行SQL語句【例10.4】
使用命令對象修改數(shù)據(jù)(程序文件samp10-04.asp)。<!--#INCLUDEFILE="ADOVBS.INC"--><%SetMyConn=Server.CreateObject("ADODB.Connection")SetMyCommand=Server.CreateObject("ADODB.Command")MyConn.Open"DSN=MyDsn;uid=sa;pws=;database=TestDb"SetMyCommand.ActiveConnection=MyConnsSql="UPDATEfeedbackSETemail=''whereipaddr=''"MyCommand.CommandText=sSqlMyCommand.CommandType=adCMDTextMyCommand.Executeiferr.number=0thenresponse.write"執(zhí)行成功!"Else response.write"執(zhí)行失敗!"endifMyconn.Close:setmyconn=nothing%>
2.使用命令對象執(zhí)行存儲過程
存儲過程(有時也稱存儲查詢)是存儲在數(shù)據(jù)庫中預(yù)先定義的SQL查詢語句,存儲過程邏輯駐留在存儲過程體中。假設(shè)在testdb數(shù)據(jù)庫中創(chuàng)建了存儲過程sp_todaylog來檢索當(dāng)日反饋的信息。在下面的程序中就調(diào)用了sp_todaylog存儲過程。2.使用命令對象執(zhí)行存儲過程(2)【例10.7】
使用存儲過程(程序samp10-07.asp)。<!--#INCLUDEFILE="ADOVBS.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection")MyConn.Open"DSN=Mydsn;uid=sa;pws=;database=TestDb"SetMyCommand=Server.CreateObject("ADODB.Command")SetMyCommand.ActiveConnection=MyConnMyCommand.CommandType=adCMdStoredProcMyCmandText="sp_todaylog"SetRS=MyCommand.Execute()DOWHILENOTRS.EOFResponse.WriteRS("ipaddr")&":"Response.WriteRS("contents")&"<BR>"RS.MoveNextLOOPRS.Close:MyConn.Close%>2.使用命令對象執(zhí)行存儲過程(3)
這段腳本通過調(diào)用存儲過程sp_todaylog取出并顯示記錄。當(dāng)用命令對象調(diào)用存儲過程時,應(yīng)該把該命令對象的CommandType屬性設(shè)為adCMDStoredProc。CommandText屬性用來指定要調(diào)用的存儲過程。
3.使用返回狀態(tài)值
用命令對象可以從一個存儲過程得到返回狀態(tài)值。例如,要統(tǒng)計(jì)feedback表中的反饋總數(shù),效率最高的方法是建立一個存儲過程,如:CREATEPROCEDUREsp_CounthyASRETURN(SELECTCOUNT(*)FROMfeedback)該存儲過程用SQL集合函數(shù)COUNT()計(jì)算feedback表中的反饋總數(shù),并用Return語句返回這個數(shù)。要得到一個存儲過程的返回狀態(tài)值,必須為命令對象建立一個參數(shù),Parameters集合即為參數(shù)對象集合。可以用命令對象的CreateParameter()方法建立一個參數(shù),再用Append方法把這個參數(shù)添加到命令對象的Parameters集合中。3.使用返回狀態(tài)值(2)【例10.8】
使用參數(shù)對象返回值(程序
samp10-08.asp)。<!--#INCLUDEFILE="ADOVBS.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection")SetMyCommand=Server.CreateObject("ADODB.Command")MyConn.Open"DSN=Mydsn;uid=sa;pws=;database=TestDb"SetMyCommand.ActiveConn
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 典雅大氣古典風(fēng)中國風(fēng)模板
- 寶貝怕黑怎么辦?勇敢心培養(yǎng)法
- 住院醫(yī)師規(guī)范培訓(xùn)
- 班級歸屬感的增強(qiáng)策略計(jì)劃
- 秘書如何進(jìn)行項(xiàng)目管理計(jì)劃
- 高風(fēng)險行業(yè)的安全管理對策計(jì)劃
- 生物學(xué)調(diào)查研究項(xiàng)目計(jì)劃
- 加強(qiáng)心理健康服務(wù)的工作計(jì)劃
- 提高前臺文員處理客戶投訴的計(jì)劃
- 財務(wù)合規(guī)審查的流程與要點(diǎn)計(jì)劃
- 班組工程量結(jié)算書
- 生產(chǎn)件批準(zhǔn)申請書
- 環(huán)境監(jiān)測考試知識點(diǎn)總結(jié)
- 爵士音樂 完整版課件
- 嘉興華雯化工 - 201604
- 冀教版七年級下冊數(shù)學(xué)課件 第8章 8.2.1 冪的乘方
- XX公司“十四五”戰(zhàn)略發(fā)展規(guī)劃及年度評價報告(模板)
- 計(jì)算機(jī)輔助設(shè)計(jì)(Protel平臺)繪圖員級試卷1
- 除法口訣表(完整高清打印版)
- 河北省城市建設(shè)用地性質(zhì)和容積率調(diào)整管理規(guī)定---精品資料
- 講課實(shí)錄-洛書時間數(shù)字分析法
評論
0/150
提交評論