今天折腾用vc6联接postgre sql 8.2。为了简化起见,不直接使用libpq c api来开发。
我首先试用了oledb 驱动,问题多多
立即换成使用odbc。
初步工作正常:
针对int/bigint/vchar/timespam 的读写都正常。
针对bytea类型时出错。
经过琢磨,找出了解决办法
1)打开odbc源配置器,在选项--DataSource,第二页,选中:bytea as LO 。这是因为LO类型已经被抛弃了。
作出如上修改之后,如果数据长度小于8002则一切正常,如果大于8002则又会出现一个错误:
WARNING: nonstandard use of \\ in a string literal at character
出现这个警告的原因是,新版本的postgre已经使用E来escape 字符,而odbc驱动程序还是采用\,我不知道如何修改。
只好打开服务器的
postgresql.conf
增加配置:
escape_string_warning = off
backslash_quote=on
这样,则使用ado 调用getchunk /appendchun都一切正常。