0

说明:我在使用绑定参数多次执行准备好的语句时遇到问题。第一次它执行正确然后重置参数,语句,当我下次尝试执行相同的准备好的语句时,它失败了,给出了这样的错误。

详细信息:我正在执行一个绑定了一些参数的准备好的语句,执行后我正在休息准备好的语句并取消绑定参数。当尝试执行相同的准备好的语句时,它会给出错误:“27:获取数字属性时出错:此类型的 ColAttribute 尚未实现”。我正在使用 libodbc++ 库。当我调试时,这行出错了(libodbc++代码行)

Line :ResultSet* rs=ODBCXX_OPERATOR_NEW_DEBUG( FILE , 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 尚未实现”

感谢和问候巴拉克里希纳

4

1 回答 1

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:我知道这个问题是几年前提出的,但我最近遇到了同样的问题,并且不得不使用非常少的资源来实际工作。

于 2017-01-10T09:48:43.043 回答