query居然只能执行41次?(0分)

  • 主题发起人 主题发起人 Li zhaoyang
  • 开始时间 开始时间
L

Li zhaoyang

Unregistered / Unconfirmed
GUEST, unregistred user!
使用query时,为何执行41次后,
出现错误,
错误信息为
“operation not applicable
file or directory does not exist
file c:/test/_QSQL000.dbf
table does not exist ”
文件及目录都是正确的,并且已经执行了41条,
以为40、41、42、43等记录有问题,删除后仍出错!
难道query对使用次数有限定吗?
怎么以前没有出现呢?
请各位指教!谢谢!
 
怎么一分没有?
 
结束这个问题,重新提过,放出源码来看看
 
分数肯定会给加的。我会另加的。
代码如下:

while not eof do
begin
……
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select ztc,sum(pl) pl from '+table3.TableName+' group by ztc order by pl desc');
query1.ExecSQL;

s2:='';
query1.Open;
query1.First;
while not query1.EOF do
begin
if query1.FieldByName('ztc').asString<>'' then
s2:=trim(s2)+' '+query1.fieldByName('ztc').asString;
query1.Next;
end;
……
end;
 
excsql山了?
还有,怎么个41次?拿个WHILE?
 
>>拿个WHILE?
估计是在第二个....处,呵呵.

excsql确实有问题,不过不应该影响41次啊? 还是先拿掉试一试吧!
 
这种事情都有?以前没测过41次。
 
还有重要一点: 是不是有规律的41次?
 
为什么会是41次呢?
listen!
 
1. select语句不能用query.execSQL来执行, 只能用open来执行。
删了query1.execSQL那句。
2. query1有什么特殊设置吗?比如CachedUpdate之类的?都不要设。
3. 看看BDE中alias的设置,是不是AutoCommit方式?SQL Mode是不是
Local的?驱动程序的设置对不对?
4. 第一个eof, eof什么?不要有用独占方式打开c:/test/_QSQL000.dbf
 
谢谢各位的帮忙!
cAkk,cj,IKnow你们说的有道理。
删除后一切正常。
请你们到我的另一问题处拿分!
http://www.gislab.ecnu.edu.cn/delphibbs/dispq.asp?LID=197195
其实我的程序是不同天写的,我没有检查。

抛开这个问题,为什么总是每次都在42次出问题?
Iknow分析的有道理,我的程序中有独占出现,
但不是query1,而是table3.
如果大家有兴趣,请继续讨论。
 
我以前用FOXPRO25数据库,后来发现也存在此问题,我是从11执行到19就死掉了。一怒之下改用ACCESS,这下什么问题都解决了。整个程序修改也只用了一个晚上。我是用ODBC98控件用相同名字替代原控件,这样只需从重新设置一些数据库控件,对SQL做适当的修改即可。ODBC98的SQL语句不支持“"”(双引号)。如果你一定要用dbf,可试试query.open后用query.fetchall.
 
接受答案了.
 
后退
顶部