如何才能VB中调用有参数的存储过程,并返回参数

canigo 2003-01-22 11:32:52
我是一个VB初学者,请问我如何才能VB中调用有参数的存储过程,并返回参数,最好有示例
...全文
103 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
canigo 2003-01-23
  • 打赏
  • 举报
回复
我终于明白了,谢谢winnerwang!!!
winnerwang 2003-01-22
  • 打赏
  • 举报
回复
以下是一个示例:

例如,假设有一个表保存了用户名和密码。假设你想建立一个检查密码的存储过程。使用下面的这个存储过程,你可以检查一个用户是否输入了合法的密码。

 

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代码:

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")

现在明白了吗?
winnerwang 2003-01-22
  • 打赏
  • 举报
回复
以下是一个示例和说明,虽然是asp的例子但同样适用于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”)

看看现在是否明白了
see it



dreammaker 2003-01-22
  • 打赏
  • 举报
回复
过程名:基础项目_INSERT
参数:分类ID
调用程序如下:

Dim strSQL as string
Dim GcnOracle as New ADODB.Connection

strSQL="基础项目_INSERT (" & Lng分类ID & ")"
With gcnOracle
.BeginTrans
.Execute strSQL, , adCmdStoredProc
.CommitTrans
End With

很简单的!

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧