BLOB-объекты Flex AIR и SQLite: зачем добавлять 3-5 дополнительных байтов при хранении BLOB-объектов? - PullRequest
1 голос
/ 11 ноября 2011

Я использую Flex 4 Air (SDK 4.5) и SQLite для хранения больших двоичных объектов (png-файлов), используя этот код:

sql = "INSERT INTO pages (id, data) VALUES (:id, :data)";           
sqlStatement.text = sql;        
sqlStatement.parameters[":id"] = file.name;         
sqlStatement.parameters[":data"] = file.data;
sqlStatement.execute(); 

Таблица определена так:

CREATE TABLE "pages" ("id" varchar, "data" blob)

Проблема в том, что к хранимым данным добавляется 3-5 дополнительных байтов в начале блока данных. (Если я сохраняю 1000 байтов png, данные, хранящиеся в BLOB-объекте, обычно становятся 1004 байтами, что подтверждается проверкой файла SQLite вне среды Flex).

При чтении данных обратно, используя ...

sql = "SELECT id, CAST(data AS ByteArray) AS data FROM pages"

... Я должен обрезать данные ByteArray на 3-5 байтов, чтобы получить правильное изображение.

Clue

1 Ответ

0 голосов
/ 12 ноября 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...