CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

请教高手:VB中调用SQL Server存储过程问题

楼主blazeyan(折羽不归)2003-11-03 22:49:04 在 VB / 数据库(包含打印,安装,报表) 提问

我在SQL中建立有一含多个参数的存储过程,我按照MSDN中的样式定义如下:  
  Dim   myde   As   New   DataEnvironment1  
  Dim   nRecordNum   As   Long  
  Dim   sName,   sFrom   As   String  
   
  nRecordNum   =   myde.ClientInfo(sName,   sFrom)  
   
  上面的ClientInfo是DataEnvironment1暗中的一个存储过程类型Command。  
  执行时,总是报“类型错误”  
  我试了多个存储过程,只要是多个参数的都会出现这种错误,不知道是什么原因?请高手指教,我刚接触VB。谢谢! 问题点数:50、回复次数:6Top

1 楼Gelim(Gelim)回复于 2003-11-04 02:04:05 得分 20

在VB中调用有参数的存储过程,并返回参数  
   
  例如,假设有一个表保存了用户名和密码。假设你想建立一个检查密码的存储过程。使用下面的这个存储过程,你可以检查一个用户是否输入了合法的密码。  
   
     
   
  CREATE   PROCEDURE   sp_CheckPass  
   
  (@CHKName   VARCHAR(30),@CHKPass   VARCHAR(30),@ISValid   CHAR(4)   OUTPUT)  
   
  AS  
   
  IF   EXISTS(SELECT   UserName   FROM   WebUsers  
   
  WHERE   UserName=@CHKName   AND   UserPass=@CHKPass)  
   
  SELECT   @ISVaid=”Good”  
   
  ELSE  
   
  SELECT   @ISValid=”Bad”  
   
     
   
  这个存储过程接收两个输入参数。输入参数@CHKaName向存储过程传递一个用户名。@CHKPass向存储过程传递一个密码。如果有用户拥有指定的密码,输出参数将返回“Good”,否则,返回“Bad”。  
   
  使用输入参数的方法与使用输出参数的方法非常相似。关键的差别是,命令执行前必须给输入参数分配一个值。这里有一个例子:  
   
  vb代码:  
  dim   MyCommand   new   ADODB.Command  
   
  Set   MyCommand.ActiveConnection=MyConn  
   
  MyCommand.CommandType=adCMdStoredProc  
   
  MyCommand.CommandText=“sp_CheckPass”  
   
  Set   MyFirstParam=MyCommand.CreateParameter(“UserName”,adVarChar,adParamIntput,30)  
   
  MyCommand.Parameters.Append   MyFirstParam  
   
  Set   MySecondParam=MyCommand.CreateParameter(“UserPass”,adVarChar,adParamInput,30)  
   
  MyCommand.ParaMeters.Append   MySecondParam  
   
  Set   MyThirdParam=MyCommand.CreateParameter(“RetValue”,adChar,adParamOutput,4)  
   
  MyCommand.Parameters.Append   MyThirdParam  
   
  MyCommand(“UserName”)=”Bill   Gates”  
   
  MyCommand(“UserPass”)=”Billions”  
  MyCommand.Execute  
  MsgBox   Mycommand(“RetValue”)  
  Top

2 楼yoki(小马哥--鬓微霜,又何妨)回复于 2003-11-04 09:14:34 得分 5

存储过程不是你这样调用的,按楼上的吧Top

3 楼cbzdream(迷茫)回复于 2003-11-04 09:18:23 得分 5

同意楼上的  
  Top

4 楼blazeyan(折羽不归)回复于 2003-11-05 01:09:07 得分 0

楼上说得没错,我也试成功了。但是,我的问题是在DataEnvironment中创建的存储过程类型的Command,有没有可行的办法来正确调用?  
  谢谢楼上几位,我等等看有没有人能回答,如果没有我就给分了。Top

5 楼daliwan(百发百中大力丸)回复于 2003-11-05 08:47:43 得分 15

Gelim(Gelim)   :你竟然抄袭我的!这是我整理出来贴在论坛上的某个帖子上的!你一字不差的给拷贝过来了,够狠!Top

6 楼taosihai1only(无招胜有招)回复于 2003-11-05 09:49:56 得分 5

同意Gelim(Gelim)Top

相关问题

  • vb 调用存储过程
  • 怎样在VB中调用一个SQL SERVER的存储过程???
  • 关于VB调用SQL SERVER的存储过程???
  • 在VB里面如何调用SQL Server存储过程?
  • 在VB. NET 中如何调用sql-server存储过程?
  • 在VB中调用SQL存储过程的问题
  • 哪位大侠会用VB调用SQL Server的存储过程,并可得到存储过程的返回值?
  • vb 调用存储过程问题!
  • VB中怎么调用存储过程!
  • VB调用存储过程的问题

关键词

  • 存储过程
  • 密码
  • vb
  • 用户
  • 参数
  • mycommand
  • 调用
  • chkpass
  • dataenvironment
  • userpass

得分解答快速导航

  • 帖主:blazeyan
  • Gelim
  • yoki
  • cbzdream
  • daliwan
  • taosihai1only

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo