Вопрос

У меня есть приложение Tcl TK с серверной частью Sqlite.Я довольно хорошо понимаю синтаксис вставки, манипулирования и чтения строковых данных;однако я не понимаю, как хранить изображения или файлы в Sqlite с помощью Tcl.

Я знаю, что мне нужно создать столбец, содержащий данные BLOB, в Sqlite.Я просто не знаю, что делать со стороны Tcl.Если кто-нибудь знает, как это сделать, или может предложить мне хорошую ссылку, я был бы очень признателен.

Спасибо,

Дэмион

Это было полезно?

Решение

В моем коде я в основном открываю файл как двоичный, загружаю его содержимое в переменную Tcl и помещаю его в базу данных SQLite.Итак, что-то вроде этого...

# 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, который можно использовать для чтения или записи в ранее существовавшую каплей в базе данных.Синтаксис такой:

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

Команда возвращает новый канал TCL для чтения или написания на Blob.Канал открывается с использованием базового интерфейса sqlite3_blob_open () c-langauge.Закройте канал, используя команду Close TCL.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top