起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1643|回复: 43

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

[复制链接]
发表于 2009-9-23 11:24:59 | 显示全部楼层 |阅读模式
create or replace package TestPackage is
type TestResultSet is ref cursor;
end TestPackage ;

create or replace procedure PROC_TEMP_RANK_ONE_T(my_cur out TestPackage.TestResultSet
) as
BEGIN
open my_cur for  select * from jobs where status=1 and job_no in(100000,100001,100006,100008);
END PROC_TEMP_RANK_ONE_T;

procedure TKBBD4.Button1Click(Sender: TObject);
begin

     try
        DataSettest_proc.Active:=true;
        DataSource.DataSet:=DataSettest_proc;
        DataGrid2.DataSource:=DataSource;
     except
           on e:exception do
           begin
                jsdialogs.ShowError(e.Message+'button1click出错!','异常');
                SysUtils.Abort;
           end;
     end;
end;
回复

使用道具 举报

发表于 2009-9-23 11:33:14 | 显示全部楼层
http://bbs.justep.com/forum.php?mod=viewthread&tid=15936
按照例子做下,然后检查下自己的。
回复 支持 反对

使用道具 举报

发表于 2009-9-23 11:34:19 | 显示全部楼层
首先确认一下,这个存储过程返回的数据集有数据吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 12:04:58 | 显示全部楼层
我没用过存储过程数据集控件。不知道怎么用,我就是按上边那网站上的例子加联想乱写的。
select * from jobs where status=1 and job_no in(100000,100001,100006,100008);是有数据的。
至于存储过程返回的数据集有没数据,我就不知道怎么看了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 12:07:54 | 显示全部楼层
我调试发现DataGrid2.DataSource是为空对象
回复 支持 反对

使用道具 举报

发表于 2009-9-23 13:51:49 | 显示全部楼层
哦,要不你不要用代码做这两个赋值工作了
DataSource.DataSet:=DataSettest_proc;
        DataGrid2.DataSource:=DataSource
直接在设计期间,将datasource.dataset和datagrid的datasource属性设置好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 15:43:26 | 显示全部楼层
我把他们关联起来了。但还是没有结果??难道还缺少什么?
有没有类似的例子。
我想知道怎么将存储过程返回的数据集在DataGrid中显示出来。
回复 支持 反对

使用道具 举报

发表于 2009-9-23 15:45:18 | 显示全部楼层
和标准数据集一样。只是tdatasource控件链接的是存储过程数据集控件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 15:50:36 | 显示全部楼层
JOB_NO        JOB_NAME        JOB_DESC          STATUS        LEADER_ID
100000        总经理        公司总经理           1       
100001        大区经理        大区的主管           1        100000
100006        IT经理        主管IT事务           1        100000
100008     地区经理  办事处地区经理  1        100001
这是存储过程中select * from jobs where status=1 and job_no in(100000,100001,100006,100008);
得到的记录
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 15:53:49 | 显示全部楼层
我有设置啊,为什么还不行,好奇怪的??

datagrid2的数据源.png

1.45 KB, 下载次数: 283

回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 14:29 , Processed in 0.046554 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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