您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-02 原文发表:2007-08-31 人气:10 来源:未知

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

相关文章

在系统菜单上添加自定义菜单项
VB 从零开始编外挂(二)
用VB制作即时动态按钮
趣味撞球--VB应用程序一例
教小朋友认识 红绿灯
一组VB实用小程序
利用VB提取HTML文件中的EMAIL地址
用Visual Basic也可以实现P2P
用VB实现Win2000用户限时登录
操作过程动态显示
API实现完美的图片出现效果
VB 从零开始编外挂(八)
在WindowsNT网络中广播消息
利用VB实现浮动按钮
VB应用程序中打印条形码的两种方法
如何用VB建立快捷方式
带有历史记录功能的菜单
解除网虫心病 VB做定时断线程序
用Visual Basic与MS-Draw开发通用作图软件
制作带有动画和声音的屏幕保护程序

相关评论


本文章所属分类:首页 VB

  热门关键字: