起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 234|回复: 12

【结帖】[请求]帮忙看一个查询错误!**

[复制链接]
发表于 2008-3-28 15:50:31 | 显示全部楼层 |阅读模式
代码如下:

procedure TCT1.Button3Click(Sender: TObject);
var
      StrFilter: String;
begin
      //.........

     StrFilter := 'rownum>=3 and rownum<=20';

     Tsqldataset(DataSetBroker1.DataSet).UserFilter := StrFilter;

      //.........
end;

其中数据集 DataSetBroker1 的 SQL 语句为:

SELECT rownum,chbdm,hc,xh,xm,kshshj,jshshj FROM VW_CHBZYJL

注:VW_CHBZYJL 为Oracle数据库上的一个视图,除rownum外的字段都是视图的原有字段。

问题:
当 StrFilter 中的 rownum 设置为 >=1 的时候可以查询数据, 设置为>=其他数的时候都查询不出数,象前面写的代码就是这样。
回复

使用道具 举报

发表于 2008-3-28 15:55:03 | 显示全部楼层
楼主,首先将视图转化成表,然后使用生成数据字典工具,将表导到平台再使用查询
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 16:08:58 | 显示全部楼层
谢谢!

视图已经映射过来了。 是我写的有问题,不应该用rownum这样过滤。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 16:20:14 | 显示全部楼层
我将数据集语句改为如下:

SELECT rownum mynum,chbdm,hc,xh,xm,kshshj,jshshj  FROM VW_CHBZYJL


然后测试显示数据没有问题。但是在数据集过滤的时候出问题了:

1.jpg

15.73 KB, 下载次数: 113

回复 支持 反对

使用道具 举报

发表于 2008-3-28 17:08:56 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2008-3-28 17:11:29 | 显示全部楼层
楼主,可以通过下面的代码查看发往服务端的sql语句
在sqlfilter/userfilter后用
jsDialogs.showmsg(TSQLDataSet(DataSetBroker1.DataSet).DataFetch.CommandText,'SQL');
回复 支持 反对

使用道具 举报

发表于 2008-3-28 17:21:07 | 显示全部楼层
我测试了一下,不能用MYNUM作为查询字段,若要查询还得用rowmum作为查询字段的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 17:42:47 | 显示全部楼层
最初由 Akon 发布
[B]我测试了一下,不能用MYNUM作为查询字段,若要查询还得用rowmum作为查询字段的 [/B]


是不能使用别名吗?
回复 支持 反对

使用道具 举报

发表于 2008-3-28 17:50:38 | 显示全部楼层
不知道你是不是要改某一个列的名字?如果是这样的话,可以在DataGrid中添加所有列,然后指定列改他的Caption就可以
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 18:03:50 | 显示全部楼层
最初由 Akon 发布
[B]不知道你是不是要改某一个列的名字?如果是这样的话,可以在DataGrid中添加所有列,然后指定列改他的Caption就可以 [/B]


不是为了改名。 前面用直接用 rownum  有问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 03:40 , Processed in 0.054443 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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