質問

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。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top