And*_*Boc 5 delphi postgresql bytea
我的应用程序(在Delphi和ZEOS组件中开发)使用PostgreSQL 8.4并将一些缩略图存储到一bytea列中.
我想迁移到PostgreSQL 9.2并恢复转储,一切正常,除非我尝试检索这些图像:Postgres 9.2 hex用于输出表示而不是escape在Postgres 8.4 中使用.
有两种可能的解决方案:更改Postgres 9.2设置以进行escape表示,或hex通过应用程序更改二进制数据中的字符串.但什么是最好的解决方案?为什么PostgreSQL的9.X改变hex的bytea代表性?
这是一个简单的设置还是有技术原因?
Postgres 9.0 的发行说明中给出了理由:
- 允许
bytea以十六进制表示法写入值 (Peter Eisentraut)服务器参数
bytea_output控制是否使用十六进制或传统格式进行bytea输出。当连接到 PostgreSQL 9.0 或更高版本的服务器时, Libpq 的PQescapeByteaConn()函数会自动使用十六进制格式。但是,9.0 之前的 libpq 版本将无法正确处理来自较新服务器的十六进制格式。新的十六进制格式将直接与更多使用二进制数据的应用程序兼容,允许它们存储和检索它而无需额外的转换。它的读写速度也比传统格式快得多。
你似乎已经意识到了bytea_output。
| 归档时间: |
|
| 查看次数: |
2269 次 |
| 最近记录: |