描述:我在使用绑定参数多次执行预准备语句时遇到问题。第一次它执行正确然后重置参数,语句和当我尝试执行相同的准备语句下次失败时给出这样的错误。
详细信息:我正在执行一个带有绑定某些参数的预准备语句,执行后我正在休息预备语句并取消绑定参数。当尝试执行相同的预准备语句时,它会给出错误:" 27:获取数字属性时出错:此类型的ColAttribute尚未实现"。我正在使用libodbc ++库。当我调试它在这一行出错( libodbc ++ 代码行)
行:ResultSet * rs = ODBCXX_OPERATOR_NEW_DEBUG(文件, LINE )ResultSet(this,hstmt_,hideMe);
错误:" 27:获取数字属性时出错:此类型的ColAttribute尚未实现"
您正在运行的PostgreSQL版本号:
如何安装PostgreSQL:PostgreSQL 9.3.5,由Visual C ++ build 1600,64位编译
对postgresql.conf文件中的设置所做的更改:否
操作系统和版本:Windows 8.1(64位)
您使用什么程序连接到PostgreSQL:ODBC 3.5(libodbc ++)库
PostgreSQL服务器日志中是否有任何相关或不寻常的内容?:否
有关任何错误的问题:
错误发生时您正在做什么/如何导致错误:" 27:获取数字属性时出错:此类型的ColAttribute尚未实现"
谢谢&问候 巴拉克里希
答案 0 :(得分:0)
问题在于libodbc ++如何处理参数和查询。有两种方法可以解决这个问题:
1. Upgrade the libodbc++ to use 7.4(V3) protocol.
2. If you are using old libodbc++, then change disable the UseServerSidePrepare parameter in odbc configuration files.
odbc配置中对UseServerSidePrepare = 0的说明:
psqlodbc控制的不仅仅是使用未命名还是命名 计划在服务器中。使用UseServerSidePrepare = 0,参数为 在驱动程序中完全处理,用参数标记替换 查询本身的值。
注意:可能存在UseServerSidePrepare = 1的应用程序 性能受到打击,特别是在与< 9.2服务器。 它仍然是一个更好的默认恕我直言,如果你不得不,你仍然可以关闭它。
PS :我知道问题是在几年前被问到的,但我最近遇到了同样的问题,并且实际上工作的资源非常少。