私は、データベースがAdobe AIR経由で操作されているときに、任意のBLOBフィールドに挿入されたランダムな一連のバイトを特定しました。 (私の結果からは常にバイト[12、...]で始まると思われますが、私はそれが分かりません)BLOB列の最初のバイトは何ですか?SQlite Adobe AIR?ブロブSizeinfo?
私はそれがバイトのsizeinfoだと思います結論。
まず私のコンテキスト:私はでいっぱいSqliteをデシベルを読めば、私はSystem.data.sqliteでのAdobe AIR(クライアント側)とSystem.data.sqlite(C#のサーバ側)
てsqliteのデータベースを操作しますBLOB by Adobe AIR私は最初にAIRによって付加されたバイトを乗り越えなければなりません。そして、私はバイナリデータをすべて整形しました。完璧!
Adobe AIRでは、System.data.SqliteによってBLOBで満たされたsqlite dbを読み込もうとすると、データが破損してエラーが発生します。明らかに私はAIRが研究していない欠けているバイトを持っていないからです。
もちろん、最初のケースで削除した一連の3バイトをコピーしてから、それらのバイトを追加しようとしましたが、部分的にデータが返されました。画像の場合、最後のピクセル行はすべて灰色になりますいくつかの画像私は多かれ少なかれグレーラインを持っています。データは同じ〜4kサイズの一連の画像に対応していたので、そのうち3バイトを追加してこの結果を得ました。
と空気も時々、このエラーがスローされます。
Error: Error #2030: End of file was encountered.
だから、明らかにこれらのバイトは、サイズ上の情報を与えるが、私は本当にそれがないか取得しません!?!
私は長さ4kのbytearrayを追加しようとしましたが、3バイトを追加する傾向がありましたが、4Mを追加しようとしましたが、それは5バイトになります。
私はこの質問How do you convert 3 bytes into a 24 bit number in C#?を見つけました、そして、私はサイズ情報がどのように格納されるのかと考えました。
しかし、私はまだそれを得ることはありません... FluorineFXへ
オハイオ州私は私がそれを試して答えを投稿すると思う何かを見つけた:http://stackoverflow.com/questions/3345553/how-do-you-convert-3-bytes-into-a -24-bit-in-c – nrako