الفرق بين المراجعتين لصفحة: «Python/sqlite3/complete statement»

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
 
سطر 51: سطر 51:
con.close()
con.close()
</syntaxhighlight>
</syntaxhighlight>
== انظر أيضًا ==


== مصادر ==
== مصادر ==
[https://docs.python.org/3/library/sqlite3.html#sqlite3.complete_statement صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.]
* [https://docs.python.org/3/library/sqlite3.html#sqlite3.complete_statement صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.]
 
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Modules]]
[[تصنيف:Python Modules]]

المراجعة الحالية بتاريخ 16:46، 16 سبتمبر 2018


تتحقّق الدالة ممّا إذا كانت السلسلة النصية المعطاة تتضمن جملة 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()

مصادر