التابع Connection.enable_load_extension()‎ في بايثون

من موسوعة حسوب

يحدّد هذا التابع ما إذا كان بإمكان محرّك SQLite تحميل الملحقات من المكتبات المشتركة. تعرّف ملحقات SQLite دوال أو مجاميع أو إضافة خاصية جديدة مثل الجداول الافتراضية. تعدّ fulltext-search إحدى أشهر الملحقات التي توزّع مع SQLite.

يجدر التنبيه إلى أنّ الملحقات القابلة للتحميل معطّلة بصورة افتراضية، وذلك لأنّ بعض المنصّات (وبالخصوص Mac OS X) تمتلك مكتبات SQLite مصرّفة دون تضمين هذه الميزة. لتفعيل ميزة الملحقات القابلة للتحميل يجب تمرير ‎-enable-loadable-sqlite-extensions إلى الإعدادات.

ملاحظة: هذا التابع جديد في الإصدار 3.2.

البنية العامة

enable_load_extension(enabled)

المعاملات

enabled

قيمة منطقية (بوليانية). يكون بإمكان محرّك SQLite تحميل الملحقات من المكتبات المشتركة إن أخذ هذا المعامل القيمة True، ولا يكون بإمكانه تحميل تلك الملحقات إن أخذ المعامل القيمة False.

أمثلة

يبين المثال التالي آلية عمل التابع:

import sqlite3

con = sqlite3.connect(":memory:")

# تفعيل خاصية تحميل الملحقات
con.enable_load_extension(True)

# fulltext search تحميل الملحقة
con.execute("select load_extension('./fts3.so')")

# يمكن أيضًا تحميل الملحقة باستخدام واجهة الاستدعاء البرمجية:‏
# con.load_extension("./fts3.so")

# تعطيل ميزة تحميل الملحقات مرة أخرى
con.enable_load_extension(False)

مثال آخر من SQLite wiki:

con.execute("create virtual table recipe using fts3(name, ingredients)")
con.executescript("""
    insert into recipe (name, ingredients) values ('broccoli stew', 'broccoli peppers cheese tomatoes');
    insert into recipe (name, ingredients) values ('pumpkin stew', 'pumpkin onions garlic celery');
    insert into recipe (name, ingredients) values ('broccoli pie', 'broccoli cheese onions flour');
    insert into recipe (name, ingredients) values ('pumpkin pie', 'pumpkin sugar flour butter');
    """)
for row in con.execute("select rowid, name, ingredients from recipe where name match 'pie'"):
    print(row)

انظر أيضًا

مصادر

صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.