SQL语句:select loc,loc_nam from loc
若通过ADOQuery执行: 
set parseonly on
select loc,loc_nam from loc
set parseonly off
是可以通过,没有什么问题。
但是我的数据库中就没有loc表,以上的语句是检查不出来的!
请教大家,有没有更好的SQL语句检查方法,在DELPHI中,通过一种什么方式能检查SQL语句是否正确,包括语法是否正确,表是否存在,字段是否存在...

解决方案 »

  1.   

    parseonly是检查语法,并不判断是否存在这个表。
    获取表和字段列表,然后自己判断?
      

  2.   

    open/execsql不就檢測了嗎,用try ... except end
      

  3.   

    只想检查,不想执行,检查比较快,执行的话速度很慢的,不仅仅是上百条数据,有可能上万条记录,就在SQL中执行select loc,loc_nam from loc句话就需要10多秒时间!
      

  4.   

    最偷懒的方法是
    强行将你的sql + where 1=2
      

  5.   

    SET FMTONLY { ON | OFF } 
     备注
    当 SET FMTONLY 为 ON 时,不会因请求而对任何行进行处理或将其发送到客户端。SET FMTONLY 的设置是在执行或运行时设置,而不是在分析时设置。