----我們知道,VB的數(shù)據(jù)庫(kù)編程有許多種方法,比如直接用ODBCAPI編程,這種方法靈活、高效,程序員可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)復(fù)雜的控制;也可以用VB中的數(shù)據(jù)對(duì)象,如RDO(遠(yuǎn)程數(shù)據(jù)對(duì)象)、DAO(數(shù)據(jù)訪問(wèn)對(duì)象)、ADO(ActiveX數(shù)據(jù)對(duì)象),這種方法實(shí)現(xiàn)起來(lái)方便、快捷,但靈活性較差一些。由于存儲(chǔ)過(guò)程在實(shí)現(xiàn)數(shù)據(jù)封裝、隱藏以及代碼的預(yù)編譯、減少網(wǎng)絡(luò)負(fù)載、維護(hù)方便等優(yōu)點(diǎn),所以被許多RDBMS和編程工具做支持。VB中的各類數(shù)據(jù)對(duì)象也提供對(duì)存儲(chǔ)過(guò)程的支持。
----我們以ADO為例來(lái)說(shuō)明其實(shí)現(xiàn)的步驟
----1.創(chuàng)建、調(diào)試存儲(chǔ)過(guò)程。你可以在數(shù)據(jù)庫(kù)中也可以在其他外掛程序的支持下進(jìn)行存儲(chǔ)過(guò)程的創(chuàng)建和調(diào)試工作。本例中的存儲(chǔ)過(guò)程代碼如下(使用PUBS的MSSQL中的例子庫(kù)):
----特殊說(shuō)明----1.Setrecordset=command.Execute(RecordsAffected,Parameters,Options)command.ExecuteRecordsAffected,Parameters,Options這是command的兩種用法,一種有返回結(jié)果集,一種沒(méi)有返回結(jié)果集。
----RecordsAffected:是指用update、delete操作時(shí)所影響的結(jié)果,對(duì)select的查詢,其值為-1;這和在Mssqlserver中的QueryAnalyzer中的不一樣。QueryAnalyzer中,select、update、delete的結(jié)果顯示的是實(shí)際查、改、刪的記錄數(shù)。
----Options:指明command的類型,有adCmdText、adCmdTable、adCmdStoredProc等等,用戶可見(jiàn)MSDN。
----2.在參數(shù)的類型中,用戶可以用varchar來(lái)代替integer,系統(tǒng)會(huì)幫你自動(dòng)實(shí)施轉(zhuǎn)化;
----3.本例中僅為帶輸入?yún)?shù)的存儲(chǔ)過(guò)程,如果要有輸出參數(shù),根據(jù)MSDN的材料,用ADO不行。你可以用RDO數(shù)據(jù)對(duì)象,MSDN中有一個(gè)例子,此處不做過(guò)多贅述;
----4.可以不用ADOCOMMAND對(duì)象,也可直接調(diào)用ADOCONNECTION的execute方法,結(jié)果很類似。
->新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注