请教高手:VB中调用SQL Server存储过程问题
我在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




