关于循环(100分)

  • 主题发起人 主题发起人 nfy
  • 开始时间 开始时间
N

nfy

Unregistered / Unconfirmed
GUEST, unregistred user!
我想读取C:/kczw/zw001/zwye2002.db
......
C:/kczw/zw099/zwye2002.db
For i:=1 to 33 do
Begin
with Query1 do
begin
sql.clear;
sql.add('select * from c:/kczw/zw00'+inttoStr(i)+'zwye2002.db where yemonth=:00 headcode=Edit1.Text');
ExecSQL;
end;
end;
不行啊 帮帮我吧
 
试试
For i:=1 to 33 do
Begin
with Query1 do
begin
close;
sql.clear;
sql.add('select * from c:/kczw/zw00'+inttoStr(i)+'/'+'zwye2002.db where yemonth=:00 headcode=Edit1.Text');
ExecSQL;
end;
end;

 
是不是该分一下段,
因为 inttostr 是不会自动要你的 9->'9' 时,给你加 '0' 的,
把 1-9 分一个段:
sql.add('select * from c:/kczw/zw00'+inttoStr(i)+'/'+'zwye2002.db where yemonth=:00 headcode=Edit1.Text');
然后 10-99 一个段
sql.add('select * from c:/kczw/zw0'+inttoStr(i)+'/'+'zwye2002.db where yemonth=:00 headcode=Edit1.Text');


 
SQL.Add('Select * from "C:/kczw/zw001/zwye2002.db"');
表名两端加上双引号
只要你的目录名,设置正确,就没有问题
 
darnis说的对

要不到10时,就读成C:/kczw/zw0010/zwye2002.db 了
 
提示"unknow database'
 
另外问一下edit1.txt spinedit1.value 的值在SQL语句中怎么引用?
 
用Query不会自动连接数据库的,你先要手工设置好ODBC,然后还的在程序中Query.DateName=你的当前要操作的数据库名。
 
多人接受答案了。
 
后退
顶部