首页 > 代码库 > Postgre cannot insert multiple commands into a prepared statement
Postgre cannot insert multiple commands into a prepared statement
悲剧...
FireDAC连接Postgre数据库, 使用默认的属性, 一次执行多条SQL的时候, 会报"cannot insert multiple commands into a prepared statement"这样的错误
到网上查了一下(百度), 什么信息都找不到, 然后又google, 找到很多国外的信息 (此句纯粹为了鄙视百度...各位看官可以忽略)
搜啊搜, 大概的意思是, Postgre有2种模式 一种是只能执行一句SQL, 另外一种是支持多SQL批量执行的, 查找过程就忽略的, 总之是各种猜测
最后发现Postgre对于执行模式的接口有2个: PQexec和
PQexecParams 这个可以在Postgre的帮助文档31.3.1 中找到相关资料
其中PQexec就是支持多个SQL同时执行的, 而PQexecParams则是只支持一句SQL, 他们的区别在于是否支持SQL变量参数值
而firedac默认是使用PQexecParams接口来执行的, 所以就会报那个错误, 如果想以PQexec方式执行, 方法如下:
1.FDConnection.ExecSQL
2.设置FDQuery.ResourceOptions.DirectExecute := True;
问题解决
Postgre cannot insert multiple commands into a prepared statement
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。