怎样根据计算字段过滤记录?(100分)

A

aaycsdn

Unregistered / Unconfirmed
GUEST, unregistred user!
ado,用filter、重写sql均不行。
是不是根本就不行?
 
根据计算字段过滤记录?

具体点呢?
 
好象不行
 
比如说年龄使用计算字段(根据出生年月)。
然后需要年龄为25岁的人员名单。
实现不了。
 
怎么实现不了?
在OnFilterRecord中过滤不就完事了吗。
 
计算字段只有在程序运行时才有值,如果你去读数据时值都是空的
建议不要使用计算字段,其实多加几句可以免掉很多麻烦
 
可以用select 语句
如一个表的两个字段均是int 型
名为:A和B 查询A加B大于100的记录
SELECT 语句为:
select A+B from tablename where A+b>100
 
把计算字段的值存入临时表
(-o-)
 
用SQL实现起来还是很方便的,为什么非要计算字段呢
 
真是吃多了
 
我也用过,不行,不知道为什么,不过我在表中加个布尔值的字段,然后通过计算计段
修改布尔字段的值,再怎么过滤都行了。:)
 
怎會不行,不要在Ado元件的Filter中設定條件,應在
ADOQuery1FilterRecord事件中實現,先將其Filtered設
為真。
procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
if adoquery1.FieldByName('quan').AsFloat>0 then
Accept:=True
Else
Accept:=False;
end;
//以上是過濾掉Quan字段值小于0的數據。
//用計算字段名代替即可。
 
多人接受答案了。
 

Similar threads

回复
0
查看
864
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
956
SUNSTONE的Delphi笔记
S
顶部