起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: bfaomei

存储过程数据集 怎么没有把数据显示出来???

[复制链接]
 楼主| 发表于 2009-9-23 15:55:47 | 显示全部楼层
是不是存储过程错了??

qq截图未命名.png

3.18 KB, 下载次数: 176

回复 支持 反对

使用道具 举报

发表于 2009-9-23 15:56:54 | 显示全部楼层
最初由 lixy 发布
[B]http://bbs.justep.com/forum.php?mod=viewthread&tid=15936
按照例子做下,然后检查下自己的。 [/B]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 16:21:49 | 显示全部楼层
郁闷当中....
我按着做了,还是不行,没有结果.
回复 支持 反对

使用道具 举报

发表于 2009-9-23 16:29:06 | 显示全部楼层
楼主,是按照http://bbs.justep.com/forum.php?mod=viewthread&tid=15936
3楼作的吗?有什么问题?
n个输入1个数据集输出
包:
create or replace package lxy_pak
-- Public type declarations
is
  type cur_emp is ref CURSOR;
end;

存储过程:
create or replace procedure test_proc
(inprm in varchar2
, inprm1 in varchar2
, inprm2 in varchar2
,emps out lxy_pak.cur_emp
) is
begin
open emps for select * from table1 where id>=(inprm+inprm1+inprm2);

end test_proc;

X3:
组件:
DataSetCCGCSJJ1: TStoredProcDataSet;      
代码:
         DataSetCCGCSJJ1.Params.ParamByName('inprm').AsString:='1';
     DataSetCCGCSJJ1.Params.ParamByName('inprm1').AsString:='0';
     DataSetCCGCSJJ1.Params.ParamByName('inprm2').AsString:='1';     
DataSetCCGCSJJ1.Active:=true;
注意,参数属性内存在EMPS游标参数要修改datatype属性为ftCURSOR
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 16:43:53 | 显示全部楼层
是啊,一个输入,一个光标输出.
就是不出来结果啊
回复 支持 反对

使用道具 举报

发表于 2009-9-23 16:56:54 | 显示全部楼层
如果例子都出不来,那只能楼主仔细检查了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 17:02:02 | 显示全部楼层
哎.先放一放先了...
回复 支持 反对

使用道具 举报

发表于 2009-9-23 17:21:53 | 显示全部楼层
请问楼主,你调用不返回数据集的存储过程能正常执行吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 17:29:59 | 显示全部楼层
刚开始是可以的,现在我改了下存储过程,就不行了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 17:34:45 | 显示全部楼层
我的存储过程实现了两个功能,一个是不用数据集返回值的,
另一个是用了数据集返回值的.用P_TYPE不同选择不同的方法.
不用数据集的可以返回值.另一个却不能.

create or replace procedure PROC_TEMP_RANK_ONE_T(
   P_TYPE          IN NUMBER,
P_STATUS in number,
prm11 in number,
prm12 in varchar2,
prm13 in varchar2,
rm11 out number,
rm12 out varchar2,
rm13 out varchar2,
my_cur out TestPackage.TestResultSet
) is
BEGIN
      SET TRANSACTION READ WRITE;
      if P_TYPE=2 then
         open my_cur for  select job_no,job_name,job_desc from jobs where status=P_STATUS and job_no=100000;
      end if;
      if P_TYPE=1 then
          rm11:=prm11;
          rm12:=prm12;
          rm13:=prm13;
      end if;
END PROC_TEMP_RANK_ONE_T;


procedure TKBBD4.Button1Click(Sender: TObject);
begin
     try
         DataSetDataSetStoredProc.Params.ParamByName('P_TYPE').AsInteger:=2;
         DataSetDataSetStoredProc.Params.ParamByName('P_STATUS').AsInteger:=1;
         DataSetDataSetStoredProc.Active:=true;
     except
           on e:exception do
           begin
                jsdialogs.ShowError(e.Message+'button1click出错!','异常');
                SysUtils.Abort;
           end;
     end;
end;

procedure TKBBD4.ButtonMARKSTATUSClick(Sender: TObject);
begin
     StoredProc.Params.ParamByName('P_TYPE').AsInteger:=1;
     StoredProc.Params.ParamByName('prm11').AsInteger:=111;
     StoredProc.Params.ParamByName('prm12').AsString:='22222';
     StoredProc.Params.ParamByName('prm13').AsString:='测试';

     StoredProc.Execute;
     Memo1.Lines.Add(StoredProc.Params.ParamByName('rm11').AsString);
     Memo1.Lines.Add(StoredProc.Params.ParamByName('rm12').AsString);
     Memo1.Lines.Add(StoredProc.Params.ParamByName('rm13').AsString);
end;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 21:28 , Processed in 0.045989 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表