Flex AIR和SQLite blob:存储blob时为什么添加3-5个额外字节?

时间:2011-11-11 05:31:37

标签: flex sqlite blob

我正在使用Flex 4 Air(sdk 4.5)和SQLite来使用此代码存储blob(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个字节 - 通过检查Flex环境之外的SQLite文件来确认。)

回读数据时,使用...

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

...我必须修剪数据ByteArray 3-5个字节以获得有效的图像。

线索?

1 个答案:

答案 0 :(得分:0)