小弟我做了一个程序,现需要调用后台(oracle9i)相关5个存储过程,要了解每一个存储过程执行后返回状态,才能决定是否执行下一个存储过程,由于系统在线使用,就先测试了一下:proc如下:
----------------------------------------------
CREATE OR REPLACE PROCEDURE test_out
/*
中文名称:测试输出参数
功 能:测试输出参数
设 计 人:njxl
编 码 人:njxl
修 改 人:njxl
时 间:2006-01-23
*/
(
result1 out integer
)
is
begin
result1:=5;
END;pl/sql测试通过脚本如下:
-----------------------------------------------
set serveroutput on;declare
aa integer(1);
begin
test_out(aa);
dbms_output.put_line(aa);
end; 通过vb的command对象调用报错
------------------------------------------------
'运行相关proc
Public Function run_proc(ByVal proc_name As String)
Dim oracle9i_con As ADODB.Connection
Dim cmd As ADODB.Command
Dim param As ADODB.Parameter
Dim @result As Integer
Set oracle9i_con = New ADODB.Connection
Set cmd = New ADODB.Commandoracle9i_con.ConnectionString = "Driver=" + CStr(GetIniTF("oracle_icdadmin", "Driver")) + ";" + _
"Server=" + CStr(GetIniTF("oracle_icdadmin", "Server")) + ";" + _
"Uid=" + CStr(GetIniTF("oracle_icdadmin", "Uid")) + ";" + _
"Pwd=" + CStr(GetIniTF("oracle_icdadmin", "Pwd")) + ";"
oracle9i_con.Open '接上目标数据icdmainSet cmd.ActiveConnection = oracle9i_con
'存储过程名称
cmd.CommandText = proc_name
'指定要执行的是一个存储过程
cmd.CommandType = adCmdStoredProc
'指定输出参数对象
Set param = cmd.CreateParameter("@result", adInteger, adParamOutput)
cmd.Parameters.Append param
'执行存储过程
cmd.Execute
(这一步报错,说不符合调用规则,或oracle9i连接方式出错,可前面oracle9i_con.Open是正确的)
msgbox cmd.Parameters("@result")
..........
..........
..........
Set cmd = Nothing
oracle9i_con.Close
Set oracle9i_con = Nothing
End Function解决后立即结贴,多谢大家
----------------------------------------------
CREATE OR REPLACE PROCEDURE test_out
/*
中文名称:测试输出参数
功 能:测试输出参数
设 计 人:njxl
编 码 人:njxl
修 改 人:njxl
时 间:2006-01-23
*/
(
result1 out integer
)
is
begin
result1:=5;
END;pl/sql测试通过脚本如下:
-----------------------------------------------
set serveroutput on;declare
aa integer(1);
begin
test_out(aa);
dbms_output.put_line(aa);
end; 通过vb的command对象调用报错
------------------------------------------------
'运行相关proc
Public Function run_proc(ByVal proc_name As String)
Dim oracle9i_con As ADODB.Connection
Dim cmd As ADODB.Command
Dim param As ADODB.Parameter
Dim @result As Integer
Set oracle9i_con = New ADODB.Connection
Set cmd = New ADODB.Commandoracle9i_con.ConnectionString = "Driver=" + CStr(GetIniTF("oracle_icdadmin", "Driver")) + ";" + _
"Server=" + CStr(GetIniTF("oracle_icdadmin", "Server")) + ";" + _
"Uid=" + CStr(GetIniTF("oracle_icdadmin", "Uid")) + ";" + _
"Pwd=" + CStr(GetIniTF("oracle_icdadmin", "Pwd")) + ";"
oracle9i_con.Open '接上目标数据icdmainSet cmd.ActiveConnection = oracle9i_con
'存储过程名称
cmd.CommandText = proc_name
'指定要执行的是一个存储过程
cmd.CommandType = adCmdStoredProc
'指定输出参数对象
Set param = cmd.CreateParameter("@result", adInteger, adParamOutput)
cmd.Parameters.Append param
'执行存储过程
cmd.Execute
(这一步报错,说不符合调用规则,或oracle9i连接方式出错,可前面oracle9i_con.Open是正确的)
msgbox cmd.Parameters("@result")
..........
..........
..........
Set cmd = Nothing
oracle9i_con.Close
Set oracle9i_con = Nothing
End Function解决后立即结贴,多谢大家
解决方案 »
- vb控制鼠标点击窗体内指定位置
- 与ARGB有关的一个词组无法理解!望大侠们指点一下!
- Spread 的数据绑定后列宽自动改变问题
- 一个搜索功能!VB
- 如何一行行地删除文本文件中的每一行记录
- 解决这个问题,愿以500分作为酬谢
- 没有使用任何控件,如果直接打印窗口,会不会把msflexgrid控件中的数据一起打印出来?
- 新手请教各位大虾~
- 怎样可以得到当前时间,谢谢?
- 为什么我编的程序老是报错:未找到方法或数据成员???
- VB开发代理服务器的问题(Socket为什么关闭了?)
- 如何实现:www.XX.com有MSSQL数据库DB(含表Tab),要求写一个客户端软件,当表Tab中有记录插入时,在客户端C盘记录下该记录
With rs
.ActiveConnection = oracle9i_con
.CommandText = "proc_name"
.Prepared = False
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("result1", adNumeric, adParamOutput)
.Execute
End With
msgbox rs.Parameters("result1") '就可得到回调的值
/*
中文名称:测试输出参数
功 能:测试输出参数
设 计 人:njxl
编 码 人:njxl
修 改 人:njxl
时 间:2006-01-23
*/
(
result1 out integer
)
is
begin
result1:=5;
END;这个不对啊?