كيفية تخزين البيانات BLOB في SQLite عن طريق تى سى ال

StackOverflow https://stackoverflow.com/questions/1613639

  •  06-07-2019
  •  | 
  •  

سؤال

ولدي تطبيق تى سى ال 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top