如下代码:
sql := 'SELECT s_id,rq,pf,dspf,bdid,zcid,bb,sl,bz FROM tpData';
sql := sql + ' WHERE rq BETWEEN''' + DyStart + '''AND ''' + DyEnd + '''';
sql := sql + ' AND (bdid<100)';
try
OpenADOQuery(adq, sql);
except
ErrorDlg('表打开错误!', '打开表错误');
end;这段代码写在FormCreate事件中,编译后直接打开窗体提示未知错误,要是编译后不直接打开窗体,编译后先关闭窗体,然后打开exe文件运行,再打开form1就可以正常运行。我想问下为什么编译后直接打开form1报错。
sql := 'SELECT s_id,rq,pf,dspf,bdid,zcid,bb,sl,bz FROM tpData';
sql := sql + ' WHERE rq BETWEEN''' + DyStart + '''AND ''' + DyEnd + '''';
sql := sql + ' AND (bdid<100)';
try
OpenADOQuery(adq, sql);
except
ErrorDlg('表打开错误!', '打开表错误');
end;这段代码写在FormCreate事件中,编译后直接打开窗体提示未知错误,要是编译后不直接打开窗体,编译后先关闭窗体,然后打开exe文件运行,再打开form1就可以正常运行。我想问下为什么编译后直接打开form1报错。
begin
with ADOQry do
begin
Close;
SQL.Clear;
SQL.Add(SQLtxt);
Open;
end;
end;
对,就用这个思路来解决问题。。有时候我为了判断程序中的动态sql的正确性,会在query.open之前,先showmessage出来query.sql.text的。
这样子就知道程序到底运行了什么sql代码了如果不知道怎么样拼接sql,则可以在查询分析器中先试试。然再再复制到delphi中修改。