2011-11-11 5 views
1

私はブロブを保存するためのFlex 4航空(SDK 4.5)とSQLiteのを使用して(PNGファイル)は、このコードを使用しています:フレックスAIRとSQLiteブロブ:なぜブロブを格納するときに3-5の追加バイトが追加されるのですか?

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を保存すると、ブロブに保存されているデータは通常1004バイトになります - Flex環境外のSQLiteファイルを調べることで確認できます)。 ...

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

を使用して、バックデータを読み出す場合

...私はByteArrayの3-5は、有効な画像を得るためにバイトのデータをトリミングする必要があります。

ヒント?

答えて

0

チェックこのアウト:

What is the first bytes in a Blob column SQlite Adobe AIR? Blob Sizeinfo?

そして、あなたはトラブルにそれらを表示するを持っている場合:

Flex local SQLite BLOB display

+0

は、SQLiteNoobをありがとう!ああ、これは、AIRが要求することなく、AIRがそれ自身で行うことです。これにより、意図したとおりにAIR SQLiteを使用することができなくなります。 Hmfp。 – Cambiata

+0

喜んで助けてください!ハッピーコーディング! – SQLiteNoob

関連する問題