Tclを使用してSqliteにBLOBデータを保存する方法
質問
Sqliteバックエンドを持つTcl TKアプリケーションがあります。文字列データの挿入、操作、読み取りの構文はかなり理解しています。ただし、Tclを使用して画像やファイルをSqliteに保存する方法がわかりません。
SqliteでBLOBデータを保持する列を作成する必要があることは知っています。物事のTcl側で何をすべきかわからないだけです。誰かがこれを行う方法を知っているか、私に提案する良いリファレンスを持っているなら、私は本当に感謝しています。
ありがとうございます
ダミオン
解決
私のコードでは、基本的にファイルをバイナリとして開き、その内容をTcl変数にロードして、SQLite dbに挿入します。だから、このようなもの...
# load the file's contents
set fileID [open $file RDONLY]
fconfigure $fileID -translation binary
set content [read $fileID}
close $fileID
# store the data in a blob field of the db
$db eval {INSERT OR REPLACE INTO files (content) VALUES ($content)}
明らかに、味を味わいたいでしょう。テーブルにはおそらく追加の列が含まれます...
他のヒント
incrblob
コマンドは、次のようになります。 http:// sqlite .org / tclsqlite.html#incrblob
" incrblob"メソッド
このメソッドは、TCLチャネルを開きます。 読み取りまたは書き込みに使用できます データベース内の既存のBLOB。の 構文は次のとおりです。
dbcmd incrblob ?-readonly?? ?DB? TABLE COLUMN ROWID
コマンドは新しいTCLチャネルを返します BLOBの読み取りまたは書き込み用。 チャンネルを開くには 基礎となるsqlite3_blob_open() C言語インターフェイス。閉じます closeコマンドを使用したチャネル TCL。
所属していません StackOverflow