欢迎光临
我们一直在努力

odbcapi的vbsample_visualbasic教程

建站超值云服务器,限时71元/月

Example:

PrivateSubCommand1()
Dima_hEnvAsLong
Dima_hDBCAsLong
Dims_DistrictAsLong
Dimu_DistrictAsLong<p>DimQueryAsString
DimaTokenAsLong
DimRetAsInteger<p>Dims_parm1(256)AsByte
Dims_parm2AsInteger
Dims_parm3(256)AsByte
Dims_parm4AsInteger
DimaDTaxAsSingle
DimaNextOrderAsInteger
DimbNextOrderAsInteger
DimcbValue1AsLong
DimcbValue2AsLong
DimcbValue3AsLong
DimcbValue4AsLong
DimcbValue5AsLong
DimiAsInteger
’Variablesthatholdthelengthoftheparameters
cbValue1=SQL_NTS
cbValue2=0
cbValue3=SQL_NTS
cbValue4=0
cbValue5=0
’ConnecttoanAS/400
Ret=SQLAllocEnv(a_hEnv)’AllocatestheSQLenvironment
Ret=SQLAllocConnect(a_hEnv,a_hDBC)’Allocatesconnection
Ret=SQLConnect(a_hDBC,"BANANA",SQL_NTS,"SPEED",SQL_NTS,"SPEED2",SQL_NTS)
’Createapreparedstatementtoselectdata
Ret=SQLAllocStmt(a_hDBC,s_District)
Query="SelectDTAX,DNXTORfromQUSER.DSTRCTwhere(DWID=?andDID=?)"
Ret=SQLSetStmtOption(s_District,SQL_CONCURRENCY,SQL_CONCUR_READ_ONLY)
Ret=SQLPrepare(s_District,Query,SQL_NTS)

’Bindtheparametersfortheselectquery
Ret=SQLBindParameter(s_District,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,4,0,s_parm1(0),0,cbValue1)
Ret=SQLBindParameter(s_District,2,SQL_PARAM_INPUT,SQL_C_SSHORT,SQL_INTEGER,3,0,s_parm2,0,cbValue2)
Ret=SQLBindCol(s_District,1,SQL_C_FLOAT,aDTax,0,0&)
Ret=SQLBindCol(s_District,2,SQL_C_SSHORT,aNextOrder,0,0&)
’Createapreparedstatementtoupdatedata
Ret=SQLAllocStmt(a_hDBC,u_District)
Query="UpdateDSTRCTsetDNXTOR=?where(DWID=?andDID=?)"
Ret=SQLPrepare(u_District,Query,SQL_NTS)
’BindtheparametersfortheUpdatequery
Ret=SQLBindParameter(u_District,1,SQL_PARAM_INPUT,SQL_C_SSHORT,SQL_INTEGER,0,0,bNextOrder,0,cbValue5)
Ret=SQLBindParameter(u_District,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,4,0,s_parm3(0),0,cbValue3)
Ret=SQLBindParameter(u_District,3,SQL_PARAM_INPUT,SQL_C_SSHORT,SQL_INTEGER,3,0,s_parm4,0,cbValue4)
’YoushouldnotpasscharacterpointerstoDLL’ssoweconvertthemto
’bytearrays(actuallyfromUnicodecharaterstringstobytearrays)
CallStringToBytes("0001",256,s_parm1())’Warehouse
CallStringToBytes("0001",256,s_parm3())’Warehouse
’Thisloopwillincrementafieldintendifferentrows
Fori=1To10
’Settheparameters
s_parm2=i’District
s_parm4=i’District
’Executetheselectquery.
Ret=SQLExecute(s_District)
’Fetchresults.
Ret=SQLFetch(s_District)
Ret=SQLFreeStmt(s_District,SQL_CLOSE)
’Dosomeprocessingofthisrow…
’Thenincrementthefield
bNextOrder=aNextOrder 1
’Executetheupdate
Ret=SQLExecute(u_District)
Ret=SQLFreeStmt(u_District,SQL_CLOSE)
Next
’FreetheODBCresources
Ret=SQLFreeStmt(s_District,SQL_DROP)
Ret=SQLFreeStmt(u_District,SQL_DROP)
Ret=SQLDisconnect(a_hDBC)’Disconnectinganddeallocating.
Ret=SQLFreeConnect(a_hDBC)
Ret=SQLFreeEnv(a_hEnv)
EndSub

PrivateFunctionBytesToString(byte_array()AsByte)AsString
’convertbytearraytostring.
DimDataAsString,StrLenAsString
Data=StrConv(byte_array(),vbUnicode)
StrLen=InStr(Data,Chr(0))-1
BytesToString=Left(Data,StrLen)
EndFunction

PrivateSubStringToBytes(DataAsString,ByteLenAsInteger,return_buffer()AsByte)
’convertstringtobytearray.
DimStrLenAsInteger,CountAsInteger
ForCount=0ToLen(Data)-1
return_buffer(Count)=Asc(Mid(Data,Count 1,1))
NextCount
ForCount=Len(Data)ToByteLen
return_buffer(Count)=0
NextCount
EndSub->

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » odbcapi的vbsample_visualbasic教程
分享到: 更多 (0)

相关推荐

  • 暂无文章