使用TSqlQuery调用存储过程返回一个游标时听别人说游标输出参数不需要定义但是我的提示缺少一个参数请提示
存储过程
PROCEDURE getrule (jsname IN VARCHAR, qxjs OUT tmh.cvsx)
IS
qxname VARCHAR2 (60);
gname VARCHAR2 (60);
BEGIN
OPEN qxjs FOR
SELECT tmh.qx.NAME qxname, tmh.gnmk.NAME gnname
FROM tmh.qx, tmh.gnmk
WHERE tmh.qx.ID IN (
SELECT ID
FROM tmh.rule
WHERE tmh.rule.gnid =
(SELECT ID
FROM tmh.zhrule
WHERE tmh.zhrule.NAME = jsname))
AND tmh.gnmk.ID IN (
SELECT gnid
FROM tmh.rule
WHERE tmh.rule.gnid =
(SELECT ID
FROM tmh.zhrule
WHERE tmh.zhrule.NAME = jsname));
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END getrule;
调用存储过程
with GETRUL do
begin
GETRUL.Close;
with sql do
begin
sql.Clear;
sql.Add('{call tmh.getrule(?)} ');
end;
GETRUL.Parameters.CreateParameter('jsname',ftString,pdinput,60,trim(jsid.Text));
GETRUL.Open;
end;
错误提示
参数个数或类型错误。
存储过程
PROCEDURE getrule (jsname IN VARCHAR, qxjs OUT tmh.cvsx)
IS
qxname VARCHAR2 (60);
gname VARCHAR2 (60);
BEGIN
OPEN qxjs FOR
SELECT tmh.qx.NAME qxname, tmh.gnmk.NAME gnname
FROM tmh.qx, tmh.gnmk
WHERE tmh.qx.ID IN (
SELECT ID
FROM tmh.rule
WHERE tmh.rule.gnid =
(SELECT ID
FROM tmh.zhrule
WHERE tmh.zhrule.NAME = jsname))
AND tmh.gnmk.ID IN (
SELECT gnid
FROM tmh.rule
WHERE tmh.rule.gnid =
(SELECT ID
FROM tmh.zhrule
WHERE tmh.zhrule.NAME = jsname));
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END getrule;
调用存储过程
with GETRUL do
begin
GETRUL.Close;
with sql do
begin
sql.Clear;
sql.Add('{call tmh.getrule(?)} ');
end;
GETRUL.Parameters.CreateParameter('jsname',ftString,pdinput,60,trim(jsid.Text));
GETRUL.Open;
end;
错误提示
参数个数或类型错误。
解决方案 »
- 请教高手: ADO对SQL参数中的续行符(“\ + 换行”)是如何处理的?
- delphi控制excel图表的问题(excelchart)(急等)
- 关于TOLEContainer控件对word的简单操作
- delphi一个很有意思的现象,你们见过吗?[悬赏50分]
- 用DELPHI对WORD进行编辑
- 如何将dll中的窗体嵌入到主form中的panel中?
- 给大家看一段有用的代码,顺便给解答一个问题
- 如何销毁一个FORM
- 怎样安装没有原代码的组件,只有dcu文件?
- 怎么得到一个目录下所有文件的文件名(包括子目录的)及子目录名
- 高分求2000年以前东南大学的毕业证书样本
- 这种 动态 赋值,动态判断 要怎么表示??(内详)
@xxx varchar(1000)
ORACLE里好像没看见你定义参数
AS
/******************************************************************************
NAME: tmh
PURPOSE: REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2006-01-03 1. Created this package.
******************************************************************************/
TYPE cvsx IS REF CURSOR; PROCEDURE addrul (
gnname IN VARCHAR2,
jsname IN VARCHAR2,
qxname IN VARCHAR2
); PROCEDURE getrule (jsname IN VARCHAR, qxjs OUT tmh.cvsx);
END tmh;
/
按我们的使用经验odac在各方面都强与bde/ado,至少它的程序发布时不用装oracle客户端