Pergunta

Tenho uma aplicação Tcl TK que tem um back-end Sqlite. Eu praticamente entender a sintaxe para inserir, manipular e ler dados de cadeia; no entanto, eu não entendo como armazenar imagens ou arquivos em SQLite com Tcl.

Eu sei que tenho que criar uma coluna que contém dados BLOB no SQLite. Eu só não sei o que fazer no lado Tcl das coisas. Se alguém souber como fazer isso ou tem uma boa referência para sugerir para mim, eu realmente aprecio isso.

Obrigado,

Damion

Foi útil?

Solução

No meu código, eu basicamente abrir o arquivo como binário, carregar o seu conteúdo em uma variável Tcl, e outras coisas que no db SQLite. Então, algo assim ...

# 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)}

Obviamente, você vai querer tempere a gosto, e você é a tabela provavelmente irá conter colunas adicionais ...

Outras dicas

O comando incrblob parece com o que você quer: http://sqlite.org/tclsqlite.html# incrblob

O método "incrblob"

Este método abre um canal TCL que pode ser usado para ler ou escrever em um preexistente blob na base de dados. o sintaxe é assim:

dbcmd  incrblob  ?-readonly??   ?DB?  TABLE  COLUMN  ROWID 

O comando retorna um novo canal TCL para ler ou a escrever o BLOB. O canal é aberto usando a sqlite3_blob_open subjacente () interface de C-langauge. Feche o de canal utilizando o comando de fecho de TCL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top