كيفية تخزين البيانات BLOB في SQLite عن طريق تى سى ال
سؤال
ولدي تطبيق تى سى ال TK له سكليتي الخلفية. أنا الى حد كبير فهم بناء الجملة من أجل إدخال، والتلاعب، وقراءة البيانات السلسلة؛ ومع ذلك، وأنا لا أفهم كيف لتخزين الصور أو الملفات إلى سكليتي مع تى سى ال.
وأنا لا أعرف لديك لإنشاء العمود الذي يحمل بيانات BLOB في 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 أن يمكن أن تستخدم لقراءة أو الكتابة إلى قبل الإيجاد BLOB في قاعدة البيانات. ال بناء الجملة مثل هذا:
dbcmd incrblob ?-readonly?? ?DB? TABLE COLUMN ROWID
والأمر يعود قناة TCL جديدة لقراءة أو كتابة إلى BLOB. يتم فتح القناة باستخدام sqlite3_blob_open الكامنة () واجهة C-الناطقة. أقفل ال قناة باستخدام الأمر قريب من TCL.
اقتباس فقرة>