请高手来指点一下(50分)

  • 主题发起人 主题发起人 dingqiangqiang
  • 开始时间 开始时间
D

dingqiangqiang

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在在做有关数据库的问题,我就是在查询完后,我还想在在结果中查询,本来想用创建临时表
来解决这个问题,但是,我觉得这个比较麻烦,也不大好用,那位高手能给我一个好的建议。
恳请大家帮忙。
 
如果你的源数据量很大的话,创建临时表是一个很好的办法
但是如果数据量不大,就重新组合sql语句,再查
带上原来的where条件,新的条件就追加在后面
 
你应该用组合查询
select * from A
where A.ID in(select * from B where B.='')
 
另用一个数据集控件再查询一下就可以了。
 
使用filter的功能呀?

在Table或Query的Filter属性中设置‘变量*’可以实现右模糊查询,无左模糊。
Query1.Close;
Query1.Filter:='fld='''+edit1.text+'*''';
Query1.Filtered:=true;
Query1.Open;

filter功能是在客户端处理以前从数据库中返回的结果集的,它的处理和数据库无关,
它支持一些简单的比较,但不支持like,你需要用query控件,使用在sql的hwhere来做
like, 不支持左模糊。

delphi6/Demos/Db/Filter目录中有一个例子,粗看比较烦, 看懂就简单了
 
我觉的你的问题是关于连机视图的。
什么是连机视图呢,举例如下:
查询1:SELECT FIELD1,FIELD2,FIELD3 FROM TABLE1 WHERE
条件表达。
查询2:SELECT FIELD1,FIELD3 FROM

SELECT FIELD1,FIELD2,FIELD3 FROM TABLE1 WHERE 条件表达。

WHERE
FIELD2=表达式 。
也就是说你可以将一个查询的结果当成一个视图来使用,只不是在本机上的而已。
 
多人接受答案了。
 
后退
顶部