我必须将 blob 图像(jpeg)从 mysql 数据库复制到带有字段 bytea 的 postgres 表。我使用 c++ ..我以这种方式从 mysql 读取图像
char* buffer = new char[res2->getInt(1)];
memset(buffer, '\0', res2->getInt(1));
(res->getBlob("att"))->read(buffer,res2->getInt(1));
res2 包含 LENGHT(blob_field)。现在,如果我将缓冲区保存在文件上,我会完美地看到图像。之后我在 postgres 表上写缓冲区
const char* const paramValues[] = {buffer};
const int nParams = sizeof(paramValues) / sizeof(paramValues[0]);
const int paramLenghts[] = {buffer_size };
const int paramFormats[] = {1 }; /*binary */
PQexecParams(
conn,
"INSERT INTO images (img) VALUES($1::bytea)",
nParams,
NULL, /* Types of parameters, unused as casts will define types */
paramValues,
paramLenghts,
paramFormats,
0
);
在 postgres 表中,我在 bytea 字段中有数据,但是如果我在文件上手动复制和粘贴,我看不到图像,因为它说不是 jpeg 图像...... postgres 字符串与 mysql 不同(如果我用文本编辑器打开mysql)但我不明白为什么,因为我做了一个简单的复制和粘贴..有什么提示吗??