:[求助]菜鸟问题:使用TQuery多次查询出现如下错误...(50分)

M

mkz

Unregistered / Unconfirmed
GUEST, unregistred user!
按照下面的代码,执行30次(大概)就出现“Too many open table”错误,如果rbTimes.Checked=true 就出现“内存不够”的错误,还有SQL语句改成'select count(hyfl) as hyfl1 from xkz'
多次查询就出现严重错误,而且cpu窗口也弹出来,希望高手指正!
代码:
frmMain.qyKstj.Close;
frmMain.qyKstj.SQL.Clear;
sql_str:='select * from xkz where fsksh="'ks_name;
sql_str:=sql_str+'" and fsxz="'+xz_name;
sql_str:=sql_str+'" and hyfl="摊贩"';
if rbTimes.Checked then
begin
sql_str:=sql_str+' and (fzhrq between :f and :t)';
frmMain.qyKstj.SQL.Add(sql_str);
frmMain.qyKstj.paramByname('f').paramtype := PTInput;
frmMain.qyKstj.ParamByName('f').datatype := ftDate;
frmMain.qyKstj.ParamByName('f').value:=datetostr(tpFrom.Date);

frmMain.qyKstj.paramByname('t').paramtype := PTInput;
frmMain.qyKstj.ParamByName('t').datatype := ftDate;
frmMain.qyKstj.ParamByName('t').value:=datetostr(tpTo.Date);
end
else
frmMain.qyKstj.SQL.Add(sql_str);
frmMain.qyKstj.ExecSQL;
 
应该是 frmMain.qyKstj.Open;
 
frmMain.qyKstj.SQL.Add(sql_str);//ADD后又加下面这个干什么?
让它.ExecSQL再加。
frmMain.qyKstj.paramByname('f').paramtype := PTInput;
frmMain.qyKstj.ParamByName('f').datatype := ftDate;
frmMain.qyKstj.ParamByName('f').value:=datetostr(tpFrom.Date);

frmMain.qyKstj.paramByname('t').paramtype := PTInput;
frmMain.qyKstj.ParamByName('t').datatype := ftDate;
frmMain.qyKstj.ParamByName('t').value:=datetostr(tpTo.Date);
 
select 操作使用Open
 
但是我改过OPEN同样的错误!
 
顶部