因该怎样检查传入的Sql字串参数?(50分)

  • 主题发起人 主题发起人 xiatianyun
  • 开始时间 开始时间
X

xiatianyun

Unregistered / Unconfirmed
GUEST, unregistred user!
处理查询语句时应该怎样保证传入的SQL字符串是正确的?
 
具体一点
 
procedure Query(DS ; TDataSet;sSql : string);
begin
with DS do
begin
if Active then close;
connectstring := sSql;
open;
end;
end;
如果sSql本身有误,怎样检查?
 
好像delphi本身并沒有自檢sql語句功能,得自己運行程序調試,
不過你可以用sql bulider來建立語句,不過總有點局限性.
 
可以通过异常处理就就异常引出来
 
use this :
try
except
raise error ()
end;
or
you add the sql after you test successful in sqlexplor
 
uses clipbrd;

在Open之前加上:
Clipboard.astext:=sSql;

然后粘贴到SQLEXPLORER里调试
 
SQL语句在delphi脚本中是作为字符串使用的,即SQL是“寄宿型”的
SQL语句的正确性检验手动测试,或通过其他工具自生成。
在程序中可通过捕获自定义异常来检验SQL的合法性(通常程序自身也可检测产生异常)。
 
使用SQL Explorer,看看能否正确执行,就可以了
 
不知道你是在用户操作时进行语法检测呢还是自己调试程序时。
如果是自己调试程序,上面几位DFW已经提供了多种方式,但是如果是用户操作的话,只
能在你的输入SQL语句的地方自己编程控制。
至于 hurryman 所说的方法,可行性不大!自定义所有的错误种类,太累;将数据库的错误
直接返回,则对用户来说没有什么效果。
 
用文本文件,或者用TMEMO控件.
 
如果是调试的话
用 QUery1.sql.savetofile('xxx.txtx');来保存一下,然后查看
 
这个出错都给你提示,那要你写什么呢
 
在sql server 中运行一下不就行了么,这样比较方心一些吧!!!
 
后退
顶部