9 个解决方案
#1
用
try
Open;
except
ExecSQL;
end;
try
Open;
except
ExecSQL;
end;
#2
应该在设计上规避这个问题吧。比如使用两个ADOQuery,一个专用于查询,一个专用于更新,在编码时视业务逻辑分别在不同ADOQuery上执行。
#3
语句是你自己写的,怎么会不知道,如果是要封装进来的话可以带一个标记进来啊,代表是哪种类型
#4
1、简单点的话就判断select开头还是别的吧
2、正则表达式判断关键结构,如“select ... from”、“update .... from”等
3、设计上回避,如果你的不是通用框架,调用方应该知道调用哪个方法
2、正则表达式判断关键结构,如“select ... from”、“update .... from”等
3、设计上回避,如果你的不是通用框架,调用方应该知道调用哪个方法
#5
拆分你的sql
取第一个空格前的单元内容看是select还是delete还是update不久的了
取第一个空格前的单元内容看是select还是delete还是update不久的了
#6
我的所有update/delete语言都是查询语句
因为最后会自动加上一行:
select @@rowcount as fret
因为最后会自动加上一行:
select @@rowcount as fret
#7
这个可行,但是新问题是他会执行两次sql语句
#8
那就分3次查找:"insert","delete","update"
#9
我很想知道 楼主是基于什么情况下才会问这样的问题?
#1
用
try
Open;
except
ExecSQL;
end;
try
Open;
except
ExecSQL;
end;
#2
应该在设计上规避这个问题吧。比如使用两个ADOQuery,一个专用于查询,一个专用于更新,在编码时视业务逻辑分别在不同ADOQuery上执行。
#3
语句是你自己写的,怎么会不知道,如果是要封装进来的话可以带一个标记进来啊,代表是哪种类型
#4
1、简单点的话就判断select开头还是别的吧
2、正则表达式判断关键结构,如“select ... from”、“update .... from”等
3、设计上回避,如果你的不是通用框架,调用方应该知道调用哪个方法
2、正则表达式判断关键结构,如“select ... from”、“update .... from”等
3、设计上回避,如果你的不是通用框架,调用方应该知道调用哪个方法
#5
拆分你的sql
取第一个空格前的单元内容看是select还是delete还是update不久的了
取第一个空格前的单元内容看是select还是delete还是update不久的了
#6
我的所有update/delete语言都是查询语句
因为最后会自动加上一行:
select @@rowcount as fret
因为最后会自动加上一行:
select @@rowcount as fret
#7
这个可行,但是新问题是他会执行两次sql语句
#8
那就分3次查找:"insert","delete","update"
#9
我很想知道 楼主是基于什么情况下才会问这样的问题?