【发布时间】:2026-01-01 22:10:01
【问题描述】:
我正在尝试将我用QNetworkAccessManager 下载的图像数据插入为QByteArray。我正在尝试将此QByteArray 作为 BLOB 插入。我的表创建查询是
CREATE TABLE TILE_IMAGE(TILE_ID VARCHAR(1050), IMAGE_DATA BLOB,INSERTED_AT DATETIME,USED_AT DATETIME, PRIMARY KEY(TILE_ID))
我这样创建了插入查询,
query = QString("INSERT INTO ");
query.append("TILE_IMAGE");
query.append(QString("(TILE_ID, IMAGE_DATA ,INSERTED_AT ,USED_AT) VALUES(\'"));
query.append(*tileId);
query.append(QString("\',\'"));
query.append(QString(*imageData));
query.append(QString("\',DATETIME('NOW'),DATETIME('NOW'))"));
但是当我打印它显示的查询时,
"INSERT INTO TILE_IMAGE(TILE_ID, IMAGE_DATA ,INSERTED_AT ,USED_AT) VALUES('ivbase_TILED_MAP_VIEW_16_37396_22531','ÿØÿà ',DATETIME('NOW'),DATETIME('NOW'))"
看到 BLOB 数据只有 4 个长度。并且有一些奇怪的值。 *imageData 包含的屏幕截图是,
图片长256*256*4。它是一个 jpeg 图像。
编辑:我遵循 CL 的代码,现在 IMAGE_DATA 列有一些菱形字符。图片如下。
【问题讨论】:
-
imageData是什么类型?
标签: c++ sql sqlite blob qbytearray