为什么不行呢?各位高手,帮帮忙。

hlf 2001-12-19 03:28:10
不能将存储过程中的Char类型的变量值传回VB,代码如下:
Private Sub Command1_Click()
Dim a As New ADODB.Connection
Dim cmdtxt As New ADODB.Command
Dim s As ADODB.Parameter
Dim s2 As ADODB.Parameter

a.Open "driver={SQL Server};server=server;uid=sa;pwd=sa;database=123"
cmdtxt.ActiveConnection = a
cmdtxt.CommandText = "abc"
cmdtxt.CommandType = adCmdStoredProc
Set s = cmdtxt.CreateParameter("output", adChar, adParamOutput)'此句出错
Set s2 = cmdtxt.CreateParameter("input", adInteger, adParamInput)
cmdtxt.Parameters.Append s
cmdtxt.Parameters.Append s2
s2 = 10
cmdtxt.Execute
MsgBox cmdtxt.Parameters("output").Value
End Sub
存储过程:
CREATE PROCEDURE abc (@a char(10) output,@b int) AS
SET @a=10+@b
GO

错误提示:Parameter 对象被不正确地定义。提供了不一致或不完整的信息。
...全文
113 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljren_t 2001-12-21
  • 打赏
  • 举报
回复
就是command.activeconnect对应一个打开的连接.
就像这样:
connect.open ""
set command.activeconnect=connect
再接着写就可以了.

apollo 2001-12-20
  • 打赏
  • 举报
回复
cmdtxt.CommandText = "abc”肯定不对
ljren_t 2001-12-20
  • 打赏
  • 举报
回复
这里最得要的一点就是command对象在有一个活运的连接相连的情况下.
如果它的commandtext被指定,而且commandtype是adCmdStoredProc的话.
调用parameters的Refresh方法时command就会到数据库读一次,把所有的参数信息取加.
ljren_t 2001-12-20
  • 打赏
  • 举报
回复
参数是根据在数据库中的存储过程自动加入的.
调用和原来一样.
hlf 2001-12-20
  • 打赏
  • 举报
回复
高手,帮帮忙嘛。不知道的也帮顶顶嘛。
hlf 2001-12-20
  • 打赏
  • 举报
回复
TO:apollo(阿波罗) 
cmdtxt.CommandText = "abc”这句没有错。"abc"是存储过程名。
假如我把字符型变量改为整型变量就一切正常。
hlf 2001-12-20
  • 打赏
  • 举报
回复
TO:ljren_t(立志) 
谢谢。"这里最得要的一点就是command对象在有一个活运的连接相连的情况下."这句
话我不明白是什么意思?什么是"有一个活运的连接相连的情况下"?
hlf 2001-12-19
  • 打赏
  • 举报
回复
TO:ljren_t(立志) 
谢谢,如果用这种方法的话,参数是根据什么来增加的呢?还有,我应该怎么
调用我想调用的参数呢?
ljren_t 2001-12-19
  • 打赏
  • 举报
回复
你可以这样用,自动加入参数.
set cmdtxt.ActiveConnection = a
cmdtxt.CommandText = "abc"
cmdtxt.CommandType = adCmdStoredProc
cmdtxt.Parameters.Refresh
这样参数都已经在Parameters生成了.
你试一下.
hlf 2001-12-19
  • 打赏
  • 举报
回复
高手,帮帮忙嘛。不知道的也帮顶顶嘛。
hlf 2001-12-19
  • 打赏
  • 举报
回复
cmdtxt.CommandText = "abc"有什么错呢?
yangzhaoyu 2001-12-19
  • 打赏
  • 举报
回复
由它引起 cmdtxt.CommandText = "abc"
tante呃呃 2001-12-19
  • 打赏
  • 举报
回复
用向导生成一次看看就行了。因为我很久没用VB了。

7,771

社区成员

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

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