문제

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

"incrbob"방법

이 방법은 데이터베이스의 기존 블로브를 읽거나 쓸 수있는 TCL 채널을 엽니 다. 구문은 다음과 같습니다.

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

이 명령은 블로브를 읽거나 쓸 수있는 새로운 TCL 채널을 반환합니다. 채널은 기본 sqlite3_blob_open () c-langauge 인터페이스를 사용하여 열립니다. TCL의 면밀한 명령을 사용하여 채널을 닫습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top