有关SQL语句有效性检查问题
SQL语句:select loc,loc_nam from loc
若通过ADOQuery执行:
set parseonly on
select loc,loc_nam from loc
set parseonly off
是可以通过,没有什么问题。
但是我的数据库中就没有loc表,以上的语句是检查不出来的!
请教大家,有没有更好的SQL语句检查方法,在DELPHI中,通过一种什么方式能检查SQL语句是否正确,包括语法是否正确,表是否存在,字段是否存在...
[解决办法]
parseonly是检查语法,并不判断是否存在这个表。
获取表和字段列表,然后自己判断?
[解决办法]
open/execsql不就檢測了嗎,用try ... except end
[解决办法]
最偷懒的方法是
强行将你的sql + where 1=2
[解决办法]
SET FMTONLY { ON
[解决办法]
OFF }
备注
当 SET FMTONLY 为 ON 时,不会因请求而对任何行进行处理或将其发送到客户端。
SET FMTONLY 的设置是在执行或运行时设置,而不是在分析时设置。