如何在运行状态自动检测输入ADOQuery中的SQL语言是否正确? ( 积分: 50 )

  • 主题发起人 主题发起人 yemo0459
  • 开始时间 开始时间
Y

yemo0459

Unregistered / Unconfirmed
GUEST, unregistred user!
想在程序中放个一个Memo,运行时在里面输入SQL语言,然后查询运行前检测一下语句是否正确,不正确给出“出错”提示。我找了本书,里面有这个例子,可是实际输入编辑器后,却总是调不通。希望有高人给出实际运行过的过程。谢谢!
 
try
with qry1 do begin
close;
SQL.Clear;
sql.Add(mmo1.Text);
Open;
end;
except
begin
// Abort;
Application.MessageBox('aaa','提示',16);
end;
end;
 
运行exe文件才看得出来效果,
 
捕捉异常都要在运行EXE文件的
 
想知道SQL语句有没有错误,最简单最实用的方法就是激活该ADOQuery:
try
ADOQuery1.open ; //或ADOQuery1.ExecSQL;
except
on E:Exception do
begin
ShowMessage(E.Message);
Abort;
end;
end;
 
首先谢谢楼上给予答复的朋友!我把上面的代码放到我的程序的 “SQL查询”按钮的Click事件里,并对应改了ADOQuery的名称。程序可以运行。但是当在Memo中随意打入一些字符(模拟错误的SQL语句),再点击“SQL查询”按钮,总是出现下面的提示:

[Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword

利用的数据文件是VFP的.dbf表。现在看来问题还没有解决,求朋友们继续帮忙解决这个问题。谢谢!
 
两种可能:
1、你在Delphi的调试模式,这种现象是正常的。
2、如果是程序在单独运行,可以看看把
ShowMessage(E.Message)改成
ShowMessage('对不起,你输入的SQL不合法!');
 
晕死,也太低级的解决方法了吧。大富翁就没有能人了。
其实我是一直这么写的。不过以前看那些牛人的帖子很佩服,现在牛人没了,伤心下。
 

Similar threads

D
回复
0
查看
867
DelphiTeacher的专栏
D
D
回复
0
查看
836
DelphiTeacher的专栏
D
D
回复
0
查看
785
DelphiTeacher的专栏
D
后退
顶部