存储过程错误 - ADO和DB2 [英] stored proc error - ADO and DB2
问题描述
问候!
我是DB2的新手,但不是Orable,Sybase和SQL Server。
我试图打电话给通过VB 6和ADO / OLEDB存储过程。但是当我想要执行
Greetings!
I am VERY new to DB2 but not Orable, Sybase and SQL Server.
I am trying to call a stored procedure via VB 6 and ADO/OLEDB. But when I
try to execute
推荐答案
" ColdCanuck" <共** @ canuck.ca>在消息中写道
新闻:gY6mc.6987
"ColdCanuck" <co**@canuck.ca> wrote in message
news:gY6mc.6987
F04.5734@clgrps13 ...
F04.5734@clgrps13...
问候!
<我非常陌生,但不是Orable,Sybase和SQL Server。
我试图通过VB 6和ADO / OLEDB调用存储过程。但是当我试着执行
Greetings!
I am VERY new to DB2 but not Orable, Sybase and SQL Server.
I am trying to call a stored procedure via VB 6 and ADO/OLEDB. But when I
try to execute
对不起,我在结束之前意外地发送了这个...
请原谅交叉的帖子,但我不确定我的问题属于哪个组。
to。
正如我所说,当我尝试执行我的存储过程时,我得到以下
错误:
"参数类型无法确定至少一个变量
参数。
我的过程很简单:
CREATE PROCEDURE NORM.npn_test2
(IN pContactId character(3),>
OUT oName字符(20))
LANGUAGE SQL
BEGIN ATOMIC
DECLARE sName CHAR(20) ;
SET sName =(SELECT ADADTX ||'',''|| ADAETX FROM MAILIB.UUADCPP WHERE
ADAANB = pContactId);
SET oName = sName;
END
我的VB代码如下:
Public函数Call_sp_test(con as ADODB.Connection, ByVal sContactId As
String)As String
On Error GoTo ErrHandler
Dim sName As String
Dim cmd As New ADODB.Command
Dim rst as new ADODB.Recordset
Dim P1 As New ADODB.Parameter
Dim P2 As New ADODB.Parameter
设置cmd.ActiveConnection = con
cmd.CommandText =" {CALL NORM.npn_test2(? ,?)}"
cmd.CommandType = adCmdText
''cmd.CommandType = adCmdStoredProc
cmd.Parameters.Refresh
''cmd.Parameters(" pContactId")。Value = sContactId
cmd.Prepared = True
sName =" " '40个空格
P1.Direction = adParamInput
P1.Type = adChar
P1.Size = 6
P1.Name =" ContactId"
P1.Value =" 000006"
P1.Direction = adParamReturnValue
P2.Type = adChar
P2.Name =" Name"
P2.Size = 40
P2.Value = sName
cmd.Parameters.Append P1
cmd.Parameters.Append P2
''cmd.Execute
rst.Open cmd< - 这里发生错误
sName = cmd.Parameters(" oName")。值
Call_sp_test = cmd.Parameters(" oName")。值
rst.Close
Set rst = Nothing
Set cmd = Nothing
ErrHandler:
MsgBox"错误代码:" &安培; Err.Number& vbNewLine& _
"说明:" &安培; Err.Description& vbNewLine& _
"来源:" &安培; Err.Source,vbOKOnly + vbCritical
Err.Clear
''设置Call_sp_test = Nothing
结束功能
有没有人遇到过这个问题?我在这里错过了什么?
感谢所有回复!
欢呼,
CC
Sorry, I accidently sent this before finishing...
Please excuse the cross-post but I am unsure which group my problem pertains
to.
As I was saying, when I try to execute my stored proc, I get the following
error:
"Parameter type cannot be determined for at least one variant
parameter."
My proc is quite simple:
CREATE PROCEDURE NORM.npn_test2
( IN pContactId character(3),
OUT oName character(20))
LANGUAGE SQL
BEGIN ATOMIC
DECLARE sName CHAR(20);
SET sName = (SELECT ADADTX || '', '' || ADAETX FROM MAILIB.UUADCPP WHERE
ADAANB = pContactId);
SET oName = sName;
END
My VB code looks like:
Public Function Call_sp_test(con As ADODB.Connection, ByVal sContactId As
String) As String
On Error GoTo ErrHandler
Dim sName As String
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
Dim P1 As New ADODB.Parameter
Dim P2 As New ADODB.Parameter
Set cmd.ActiveConnection = con
cmd.CommandText = "{CALL NORM.npn_test2(?,?)}"
cmd.CommandType = adCmdText
''cmd.CommandType = adCmdStoredProc
cmd.Parameters.Refresh
''cmd.Parameters("pContactId").Value = sContactId
cmd.Prepared = True
sName = " " ''40 spaces
P1.Direction = adParamInput
P1.Type = adChar
P1.Size = 6
P1.Name = "ContactId"
P1.Value = "000006"
P1.Direction = adParamReturnValue
P2.Type = adChar
P2.Name = "Name"
P2.Size = 40
P2.Value = sName
cmd.Parameters.Append P1
cmd.Parameters.Append P2
''cmd.Execute
rst.Open cmd <- error occurs here
sName = cmd.Parameters("oName").Value
Call_sp_test = cmd.Parameters("oName").Value
rst.Close
Set rst = Nothing
Set cmd = Nothing
ErrHandler:
MsgBox "Error Code: " & Err.Number & vbNewLine & _
"Description: " & Err.Description & vbNewLine & _
"Source: " & Err.Source, vbOKOnly + vbCritical
Err.Clear
''Set Call_sp_test = Nothing
End Function
Has anyone run into this problem before? What am I missing here?
Thanks for all replies!
cheers,
CC
" ColdCanuck" <共** @ canuck.ca>在留言中写道
news:gY6mc.6987
"ColdCanuck" <co**@canuck.ca> wrote in message
news:gY6mc.6987
这篇关于存储过程错误 - ADO和DB2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!