私はブロブを保存するための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は、有効な画像を得るためにバイトのデータをトリミングする必要があります。
ヒント?
は、SQLiteNoobをありがとう!ああ、これは、AIRが要求することなく、AIRがそれ自身で行うことです。これにより、意図したとおりにAIR SQLiteを使用することができなくなります。 Hmfp。 – Cambiata
喜んで助けてください!ハッピーコーディング! – SQLiteNoob