如何在QUERY1查得的数据中再查询满足条件的数据?(50分)

  • 主题发起人 主题发起人 louew
  • 开始时间 开始时间
L

louew

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大虾:
我已经用了一个QUERY来检索数据,这时,我又要从检索出来的数据中
再检索满足一定条件的数据。由于再检索数据时,要分成三种情况,请问
如何是好?
 
使用Tquery1的OnFilterRecord事件.
当查询后, 使用Filtered:=True; Query过滤数据集时会执行
下面的过程.

procedure TForm1.Query1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
case 条件 of

case1 : Accept:= 表达式;

case2 : Accept:= 表达式;

case3 : accept:= 表达式;

else
accept:= 表达式;
end;
end;
 
分三种情况再加SQL语句好了。
query1.close;
case 条件 of
case1 : query1.sql.add(表达式);
case2 : query1.sql.add(表达式);
case3 : query1.sql.add(表达式);
else
query1.sql.add(表达式);
query1.open;
 
有OnFilterRecord事件,为什么不用?
 
上面两位的意思和你想的一样吗。如果有可能,请将你的问题说得再详细些。
 
case 条件 of
case1 :
select * from yourtable where (另一个SQL语句构成的条件1)
case2 :
select * from yourtable where (另一个SQL语句构成的条件2)
case3 :
select * from yourtable where (另一个SQL语句构成的条件3)
end;
execsql
不过这样的查询效率较低,而且条件不容易满足你的要求,
建议你用QUERY查询完后,用OnFilterRecord比较好
 
多谢各位,问题解决了,用OnFilterRecord较好。
 
多人接受答案了。
 
后退
顶部