起步软件技术论坛-X3

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

存储过程数据集**

[复制链接]
发表于 2008-3-8 13:52:11 | 显示全部楼层
如何使用TQuery去执行存储过程

创建存储过程
create proc ljtest
@kind varchar(20),
@space varchar(40)
as
  select *
    from tfilesystem
   where FKIND=@kind
     and FSpace like @space
go

exec ljtest @kind='.table', @space='\SYSTEM\%'
  

平台创建TQuery与传入参数
qry := TQuery.Create(Self);
qry.ConnectionString := 'DATABASEURL=BIZ:\SYSTEM\SYSTEM.DATABASE';
qry.CommandText := 'exec ljtest @kind=''.table'', @space=''\SYSTEM\%''';
qry.Open
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-8 14:47:14 | 显示全部楼层
1、query是用来直接显示存储过程所有数据的吧?不支持表格文档把?
2、我想做成某种报表格式,就是随意排列字段,最好使用表格文档的格式。
这种要求的话是不是用自定义数据集,定义用户字段,这些字段与存储过程数据集中的一致,然后再把数据插入自定义数据集。最后在表格文档中排列的是重新定义的用户字段。
第2种是我的要求和解决方案。
回复 支持 反对

使用道具 举报

发表于 2008-3-9 13:00:24 | 显示全部楼层
对,如果用表格文档表现的话,可以用自定义数据集
把TQuery的结果都导入到自定义数据集中就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 09:13:32 | 显示全部楼层
我用存储过程数据集导入数据到自定义数据集应该是一样的吧。这样的话影响速度吗?问一下名次是怎么统计的?不用代码一一统计的话,有什么好方法吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 09:14:53 | 显示全部楼层
我目前的速度就挺慢的,数据量并不大啊,
回复 支持 反对

使用道具 举报

发表于 2008-3-10 10:01:35 | 显示全部楼层
名次统计是什么意思
数据集中有什么字段,名次是按照什么规则统计的呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 10:22:09 | 显示全部楼层
需要按照数量完成率统计名次,在报表中,名次就在完成率的后面,就是按照完成率的大小统计,怎样高效的统计出来?我现在的想法是用过滤,但是我担心效率太低。
回复 支持 反对

使用道具 举报

发表于 2008-3-10 10:32:08 | 显示全部楼层
不用过滤啊,如果只有一个字段,你可以按照这个字段排序,这样不就是名次了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 10:36:52 | 显示全部楼层
有很多字段,还有好几个名次要排,不太可能按照一个字段排序。
回复 支持 反对

使用道具 举报

发表于 2008-3-10 10:38:59 | 显示全部楼层
数据集的Order属性就是排序了
可以设置多个字段,用逗号格开
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 07:40 , Processed in 0.038623 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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