小弟刚用Delphi不久,有一个棘手的问题,清高手指点迷津!!(给100分) 我在做一个通用的数据库查询,由用户自己输入SQL语句,数据库用SQL Server2000,如果用户输入的语法不正确,用try...except...无法捕捉这种错误,请高手指点,不胜感激!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能给我你的具体的源代码吗?[email protected]一起讨论分析 用EDatabaseError判断也可参考delphi带的例子 你用什么执行sql语句?用query吗?try query.close; query.sql.text := sqltext;//sqltext是用户输入的sql语句 query.prepare; query.open;except showmessage('你输入的sql语句错误!');end;不能正确执行吗? 你可能是在DEBUG状态下,出现此问题,你可以先编译,然后再运行EXE文件即无此问题 UP你看一下EXE是否有此问题 不能在DELPHI的IDE环境下,异常处理只能在运行EXE文件的时候才能发挥作用! try query.close; query.sql.text := sqltext;//sqltext是用户输入的sql语句 query.prepare; query.open;except showmessage('你输入的sql语句错误!'); raise;end; 可以通过编写Query的事件来响应其错误事件,捕获相应的ErroCode就行了 请参考如下的例子:procedure TForm1.Button1Click(Sender: TObject);const aa = 'select * from company when';begin try with Query1 do begin SQL.Clear; SQL.Add(aa); Open; end; except showmessage('Error'); end;end; (程序员必看)如何做一名好的开发人员 !!!!!!!!!!!!!!!!! 一个关于窗体的简单问题 键盘的ASIIC码值 各位大侠帮个忙,急! 请教一个问题!请进来一看! 自编脚本语言解释器 读取ini文件问题 为什么distinct不管用? 请问老鸟,怎么样做出这样一个界面啊? 我用sakemail做了个email小程序,可有时接收下来的邮件会乱码这是为何?有什么解决办法? 关于windows消息, 在线等待!!! 请问这句话是什么意思?为什么会出现这句话?Unsatisfied forward or external declaration:'CopyFileThread.Execute'
[email protected]
一起讨论分析
也可参考delphi带的例子
try
query.close;
query.sql.text := sqltext;//sqltext是用户输入的sql语句
query.prepare;
query.open;
except
showmessage('你输入的sql语句错误!');
end;
不能正确执行吗?
你看一下EXE是否有此问题
query.close;
query.sql.text := sqltext;//sqltext是用户输入的sql语句
query.prepare;
query.open;
except
showmessage('你输入的sql语句错误!');
raise;
end;
procedure TForm1.Button1Click(Sender: TObject);
const aa = 'select * from company when';
begin
try
with Query1 do
begin
SQL.Clear;
SQL.Add(aa);
Open;
end;
except
showmessage('Error');
end;
end;