如何对同一个记录集同时进行两种互补的过滤操作(100分)(100分)

  • 主题发起人 主题发起人 volan
  • 开始时间 开始时间
V

volan

Unregistered / Unconfirmed
GUEST, unregistred user!
我想对一个TQuery返回的记录集同时进行互补的过滤操作
例如:
记录集由
Query.Sql.Text := 'select * from Students'产生;
我想把女生放入一个DBGRID中,男生放入另一个DBGRID中,
只Active一次Query.

我的想法是能有一种控件或方法,使多种互不相同的过滤器
能同时作用于同一记录集上。


多多感谢!100分送上
 
将数据库分为两个库操作即可,至于库的分解有多种方式,选用你最熟悉的来用。
 
我想你在两个dbgrid的onenter事件中加入代码处理Query的filter就行,这时应该使
不激活的dbgrid disablecontrol
 
先多谢各位大虾!


首先,只能是一个数据库记录集,不能采用多个库;

其次,我的Dbgrid只用于显示,并不要进入。(而且我要求同时)
 
我用的是ORACLE;
不一定采用TQuery或TTABLE,但最后给我一个可以和DBGRID接口的东西!

分不够,还可以再加!
 
不要进入?什么意思,从不得到焦点?那怎么看呢?
 
仅仅是显示,就是在我还没有进去前就已经有显示了.
 
这样不行吗?
onshow;
DBGrid1.SetFocus;
DBGrid2.SetFocus;

 
是这样的:

我的想法是:

要我的界面相当于搬运,两个Dbgrid都针对同一个从数据库中取出的记录集,
当记录的标志为空时,它在DBGRID1中显示出来;当我通过修改记录集的标志使
之为非空,则它应立即在DBGRID1中消失,而在DBGRID2中显示出,其间我不能关
闭记录集又打开,而且也不能每处理一笔记录作一次焦点切换!

 
menxin

我做过测试,未达到我的要求.


请各位大虾求求我!!!!!!!
 
Sorry .我的办法是有问题,不过试了一下lmd,rxlib中的dbfilter ,也不能达到效
果.再帮你找找.
 
你应该用listbox,listview等试一试,自己加些代码控制items.用dbgrid太麻烦,
 
先多谢menxin!
 
我再加200分也可以.只要试通!!!!!
 
我想用tdbgrid是行不通的,可以利用tstringgrid,不过要自己写代码了.
可用ttable先取过所有数据,然后用filter属性,来分别在循环中填充两
个tstringgrid了,难处就在对数据集的操纵处理上
 
斗胆说一句.
设想: 在一个QUERY的SQL中对同一个表使用两次,
两个DBGRID对应这一个QUERY,各显示不同的项目.

如:
SELECT A.XXX A.XXX B.XXX B.XXX
FROM STUDENTS A, STUDENTS B
......
WHERE A.YYY=......
B.YYY=.....

这样: 只要STUDENT变了,QUERY里的A和B的项目跟着变.


 
>要我的界面相当于搬运,两个Dbgrid都针对同一个从数据库中取出的记录集,
>当记录的标志为空时,它在DBGRID1中显示出来;当我通过修改记录集的标志使
>之为非空,则它应立即在DBGRID1中消失,而在DBGRID2中显示出,其间我不能关
>闭记录集又打开,而且也不能每处理一笔记录作一次焦点切换!

想在搬运的过程中。不去操作数据库,只是在确认之后才一次操作?
还是想不通用query怎么做。还不如用一个临时表记录下来,在最后写回去。

其实我还是倾向于不采用DBGrid.
 
你是否用过INFO POWER或DB POWER,那两个控件集的DBGRID都支持GRID FILTER
不需要对TQUERY,TTABLE进行FILTER,不过象你用的那样,总得更新一下。
 
sherman, 你好。

大富翁有好几天进不来,没法及时回信。Sorry

我估计也应该是类似于Grid Filter一类的东西。但如何得到Info Power或
Db Power呢?

 
深度历险http://vcl.vclxx.com/DELPHIGB/
DELPHI星际总部http://www.ncc.com.tw/delphi/chinese.htm
都有
 
后退
顶部