الدالة sqlite3.complete_statement()‎ في بايثون

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


تتحقّق الدالة ممّا إذا كانت السلسلة النصية المعطاة تتضمن جملة SQL واحدة أو أكثر تنتهي بالفاصلة المنقوطة.

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

sqlite3.complete_statement(sql)

المعاملات

sql

سلسلة نصية تتضمن جملة SQL المراد التحقق ممّا إذا كانت تنتهي بفاصلة منقوطة أو لا.

القيمة المعادة

تعيد الدالة القيمة True إن كانت السلسلة النصية المعطاة تتضمن جملة SQL واحدة أو أكثر تنتهي بالفاصلة المنقوطة.

أمثلة

يمكن استخدام هذه الدالة لتوفير طبقة حماية لقاعدة بيانات SQLite، وكما هو موضح في المثال التالي:

import sqlite3

con = sqlite3.connect(":memory:")
con.isolation_level = None
cur = con.cursor()

buffer = ""

print("Enter your SQL commands to execute in sqlite3.")
print("Enter a blank line to exit.")

while True:
    line = input()
    if line == "":
        break
    buffer += line
    if sqlite3.complete_statement(buffer):
        try:
            buffer = buffer.strip()
            cur.execute(buffer)

            if buffer.lstrip().upper().startswith("SELECT"):
                print(cur.fetchall())
        except sqlite3.Error as e:
            print("An error occurred:", e.args[0])
        buffer = ""

con.close()

مصادر