DBISAM 中查询组件DBISAMQuery的问题。 ( 积分: 100 )

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

lusoja

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位使用DBISAM遇到过这样的问题吗?
使用DBISANQuery进行查询,通过DBGrid显示数据。
执行后显示的记录数是531, 而实际显示的只有522条。
后来我又通过NEXT方法循环地一条条取记录,也只能取到522条 剩下的9条不知道为什么找不到。 用DBISAM的管理器查询可以完整看到查询的531条记录。
而且查询返回的记录数越多该现象越明显。 何故?
 
你用什么方法得到记录数?查询语句列出来。我用用DBISAM很久了,没有发现这个问题。
 
with DBISAMQuery1 do
begin
close;
SQL.Clear;
SQL.Add('select id from pdqs where description like'+''''+'%'+Edit1.Text+'%'+'''');
open;
end;
n:=DBISAMQUery1.RecordCount;
DBISAMQuery1.First;
m:=0;
while not DBISAMQuery1.Eof do
begin
IDArray[m]:=DBISAMQuery1.FieldByName('id').AsInteger;
DBISAMQuery1.Next;
m:=m+1;
end;
 
with DBISAMQuery1 do
begin
close;
SQL.Clear;
SQL.Add('select id from pdqs where description like'+''''+'%'+Edit1.Text+'%'+'''');
open;
end;
n:=DBISAMQUery1.RecordCount;//这里是多少?
DBISAMQuery1.First;
m:=0;
while not DBISAMQuery1.Eof do
begin
IDArray[m]:=DBISAMQuery1.FieldByName('id').AsInteger;
DBISAMQuery1.Next;
m:=m+1; //m 的最后结果也应该是 = n
end;
重点检查一下查询条件 like'+''''+'%'+Edit1.Text+'%'+'''' 与你在管理器中的查询条件是否严格相同。
 
谢谢! 我的问题已经解决了。
上面的语句都没问题。 是.idx这个文件有问题,删除了之后都正常了。
我发现,.idx需要经常清理,时间长了就会造成查询出错。
 
谢谢。 仔细检查找到问题之处了
 
谢谢帮助!
 
后退
顶部