存储过程错误 - ADO和DB2 [英] stored proc error - ADO and DB2

查看:57
本文介绍了存储过程错误 - ADO和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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆