电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> .NET
VB6.0 调用存储过程的例子(方法二)-.NET教程,VB.Net语言
作者:网友供稿 点击:6
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
本人推荐使用方法一来取存储过程,当然前提是知道将要使用的参数化命令的详细情况,通过在代码中创建参数,其执行的速度快。



如果不知道要使用的参数化命令,本人整理了一份通过使用参数(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


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·经典收藏之 - C++内存管理详解-.NET教程,C#语言
·Master Page 初探-.NET教程,评论及其它
·GDI+编程10个基本技巧-.NET教程,评论及其它
·VB.NET中让Textbox只能输入数字(二)-.NET教程,VB.Net语言
·stl应用小问题-.NET教程,评论及其它
·WIN32中颜色值(COLORREF)与.NET中颜色值(Color)的转换-ASP教程,系统相关
·打造自己的专业图像工具-Visual C++ 2005图像编程系列【三】-.NET教程,C#语言
·.Net中常见问题及解决方法归类-.NET教程,.NET Framework
·Lex和Yacc从入门到精通(3)--一个极其简单的lex和yacc程序-.NET教程,评论及其它
·VB下几个非常有用的函数-.NET教程,VB.Net语言

最新文章
·VC#初学入门:第一个Windows程序
·ASP.NET 2.0-选用DataSet或DataReader
·用.net 处理xmlHttp发送异步请求
·asp.net创建文件夹的IO类的问题
·asp.net 2.0 中加密web.config 文件中的配置节
·关于ASP.NET调用JavaScript的实现
·如何实现ASP.NET网站个性化
·Acegi安全系统的配置-.NET教程,评论及其它
·Spring安全系统:Acegi Security Acegi简介-.NET教程,评论及其它
·Biztalk 开发之 架构和实例的验证-.NET教程,评论及其它


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号