关于TTable的过滤问题(急,在线)(50分)

  • 主题发起人 zyxseven
  • 开始时间
Z

zyxseven

Unregistered / Unconfirmed
GUEST, unregistred user!
FILTER:=。。。。。
FILTERED:=TRUE
TABLE1.Open;
怎么我Table1.RecordCount没有变化
如何才能得到过滤后的RecordCount

 
确信你的过滤执行了吗?
 
得到DBGRID显示的记录也行
 
看一下 例子! 看看过滤的条件是否写正确了!
 
老兄,不知道你的过滤条件是什么,是不是你的TTable.Filter中包含了and或or,
如果是的话那你不用在试了,应为TTable.Filter中不支持复杂的条件,如果你的
过滤条件复杂的话,你可以用TTable的OnFilterRecord过程来实现。
 
部分同意楼上意见。
估计你的过滤条件有问题,复杂查询还是用TQUERY,TTable的OnFilterRecord只能查询简单条件。
 
过滤过后重新打开数据库
 
但是 dbgrid已经显示了过滤的记录了
 
过滤过后重新打开数据库
什么意思
 
得到DBGRID显示的记录也行
 
DBGRID有没有类似于RecordCount的东西
 
dbgrid1.DataSource.DataSet.RecordCount;
给你想出来的,正好解决了我的一个问题,呵呵呵,

 
加一句试试
first;
 
我是想得到DBGRID显示的记录数,不是dbgrid1.DataSource.DataSet.RecordCount;
 
复杂查询还是用TQUERY吧。
 
把你的那一段代码贴上来。。
 
try
ADODataSet1.Filtered:=False;
ADODataSet1.Filter:='bmdm='+''''+sbmdm+'''';
finally
ADODataSet1.Filtered:=True;
end;
Edit1.Text:=IntToStr(ADODataSet1.RecordCount);
 
with DataMod.TextT do
begin
Close;
TableName:=GetStasStr+'file';
Filter:='szCalledNo>='+#39+edtTj.Text+#39+' and szCalledNo<'+#39+IntToStr(StrToInt(edtTj.Text)+1)+#39;
Filtered:=True;
Open;
DBGrid.DataSource := DataMod.DataSourceT;
Label2.Caption:=IntToStr(RecordCount);
end;
 
table1.TableName:='biolife.db';
datasource1.DataSet:=table1;
dbgrid1.DataSource:=datasource1;
table1.Filtered:=false;
table1.Filter:='[Species No]=''90020''' ;
table1.Filtered:=true;
table1.Active:=true;
label1.Caption:=inttostr(table1.recordcount);
根据你的代码做的例子,没有问题,建议不要考虑这里,从其它的地方赵答案

 
顶部