国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

VB6.0 調用存儲過程的例子(方法二)

2024-07-21 02:20:39
字體:
來源:轉載
供稿:網友


本人推薦使用方法一來取存儲過程,當然前提是知道將要使用的參數化命令的詳細情況,通過在代碼中創建參數,其執行的速度快。



如果不知道要使用的參數化命令,本人整理了一份通過使用參數(parameters)對象來獲取存儲過程的記錄集的內容,但該執行方式速度沒有方法一理想。



代碼整理如下,你可以直接將該代碼copy到form1窗體中進行調試。

其中函數getdatatype可以修改為自己所需的處理方式,在這里所有的代碼都是為了測試方便所有,你也可以改為自己所需的相應處理。



sub createparms()

dim adocmd as new adodb.command

dim adoprm as new adodb.parameter

dim adocon as adodb.connection

dim adors as adodb.recordset

dim strconnect as string

dim strfieldname as string



dim i as integer



strconnect = "driver={sql server};server=(local);uid=sa;pwd=;database=pubs"

set adocon = new adodb.connection

with adocon

.provider = "msdasql"

.cursorlocation = aduseserver 'must use server side cursor.

.connectionstring = strconnect

.open

end with



set adocmd.activeconnection = adocon

with adocmd

.commandtype = adcmdstoredproc

.commandtext = "adotestrpe"



.parameters.refresh ' 指定ado實際地與數據源相連

end with



' 通過parameters對象,填充輸入參數

for each adoprm in adocmd.parameters

if adoprm.direction = adparaminput then



errdatatype:

on error resume next

adoprm.value = inputbox("存儲過程參數名稱:" & adoprm.name & vbcrlf & _

"該參數數據類型:" & getdatatype(adoprm.type), "請輸入參數值", "")

if err <> 0 then

if msgbox("所輸入的參數與該參數數據類型不符,請重新輸入!取消將退出存儲過程的調用!", vbokcancel, "警告") = vbcancel then

exit sub

end if

err.clear

goto errdatatype

end if

on error goto 0



end if

next



on error goto errhandler

set adors = adocmd.execute



if not (adors is nothing) then

if not adors.eof then

do until adors.eof

for i = 0 to adors.fields.count - 1

strfieldname = adors.fields(i).name

debug.print "" & adors(strfieldname) & space(4)

next

debug.print



adors.movenext

loop

end if

end if





errhandler:

call errhandler(adocon)

resume next



shutdown:

set adocmd = nothing

set adoprm = nothing

set adors = nothing

set adocon = nothing

end sub



private sub command1_click()

call createparms

end sub



sub errhandler(objcon as object)

dim adoerr as adodb.error

dim strerror as string



for each adoerr in objcon.errors

strerror = "error #" & adoerr.number & vbcrlf & adoerr.description _

& vbcr & _

" (source: " & adoerr.source & ")" & vbcr & _

" (sql state: " & adoerr.sqlstate & ")" & vbcr & _

" (nativeerror: " & adoerr.nativeerror & ")" & vbcr

if adoerr.helpfile = "" then

strerror = strerror & " no help file available" & vbcr & vbcr

else

strerror = strerror & " (helpfile: " & adoerr.helpfile & ")" _

& vbcr & " (helpcontext: " & adoerr.helpcontext & ")" & _

vbcr & vbcr

end if



' debug.print strerror

msgbox strerror

next



objcon.errors.clear

end sub



function getdatatype(byref datatype as datatypeenum) as string

select case datatype

case datatypeenum.adarray

getdatatype = "datatypeenum.adarray"

case datatypeenum.adbigint

getdatatype = "datatypeenum.adbigint"

case datatypeenum.adbinary

getdatatype = "datatypeenum.adbinary"

case datatypeenum.adboolean

getdatatype = "datatypeenum.adboolean"

case datatypeenum.adbstr

getdatatype = "datatypeenum.adbstr"

case datatypeenum.adchapter

getdatatype = "datatypeenum.adchapter"

case datatypeenum.adchar

getdatatype = "datatypeenum.adchar"

case datatypeenum.adcurrency

getdatatype = "datatypeenum.adcurrency"

case datatypeenum.addate

getdatatype = "datatypeenum.addate"

case datatypeenum.addbdate

getdatatype = "datatypeenum.addbdate"

case datatypeenum.addbtime

getdatatype = "datatypeenum.addbtime"

case datatypeenum.addbtimestamp

getdatatype = "datatypeenum.addbtimestamp"

case datatypeenum.addecimal

getdatatype = "datatypeenum.addecimal"

case datatypeenum.addouble

getdatatype = "datatypeenum.addouble"

case datatypeenum.adempty

getdatatype = "datatypeenum.adempty"

case datatypeenum.aderror

getdatatype = "datatypeenum.aderror """

case datatypeenum.adfiletime

getdatatype = "datatypeenum.adfiletime """

case datatypeenum.adguid

getdatatype = "datatypeenum.adguid"

case datatypeenum.adidispatch

getdatatype = "datatypeenum.adidispatch"

case datatypeenum.adinteger

getdatatype = "datatypeenum.adinteger"

case datatypeenum.adiunknown

getdatatype = "datatypeenum.adiunknown"

case datatypeenum.adlongvarbinary

getdatatype = "datatypeenum.adlongvarbinary"

case datatypeenum.adlongvarchar

getdatatype = "datatypeenum.adlongvarchar"

case datatypeenum.adlongvarwchar

getdatatype = "datatypeenum.adlongvarwchar"

case datatypeenum.adnumeric

getdatatype = "datatypeenum.adnumeric"

case datatypeenum.adpropvariant

getdatatype = "datatypeenum.adpropvariant"

case datatypeenum.adsingle

getdatatype = "datatypeenum.adsingle"

case datatypeenum.adsmallint

getdatatype = "datatypeenum.adsmallint"

case datatypeenum.adtinyint

getdatatype = "datatypeenum.adtinyint"

case datatypeenum.adunsignedbigint

getdatatype = "datatypeenum.adunsignedbigint"

case datatypeenum.adunsignedint

getdatatype = "datatypeenum.adunsignedint"

case datatypeenum.adunsignedsmallint

getdatatype = "datatypeenum.adunsignedsmallint"

case datatypeenum.adunsignedtinyint

getdatatype = "datatypeenum.adunsignedtinyint"

case datatypeenum.aduserdefined

getdatatype = "datatypeenum.aduserdefined"

case datatypeenum.advarbinary

getdatatype = "datatypeenum.advarbinary"

case datatypeenum.advarchar

getdatatype = "datatypeenum.advarchar"

case datatypeenum.advariant

getdatatype = "datatypeenum.advariant"

case datatypeenum.advarnumeric

getdatatype = "datatypeenum.advarnumeric"

case datatypeenum.advarwchar

getdatatype = "datatypeenum.advarwchar"

case datatypeenum.adwchar

getdatatype = "datatypeenum.adwchar"

case else

getdatatype = "無法獲取數據類型"

end select

end function

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 香河县| 芷江| 龙海市| 思茅市| 波密县| 青铜峡市| 抚顺市| 淳安县| 屏东市| 石狮市| 新化县| 南宫市| 江都市| 浦江县| 泸水县| 玛曲县| 毕节市| 体育| 博白县| 章丘市| 都安| 古交市| 绩溪县| 清苑县| 汉中市| 孙吴县| 文山县| 吴忠市| 平定县| 白河县| 思南县| 加查县| 定日县| 得荣县| 伊川县| 屯留县| 江西省| 名山县| 尖扎县| 平武县| 中牟县|