التابع Connection.create_collation()
في بايثون
ينشئ التابع مقارنة collation يحمل الاسم المعطى مع الكائن القابل للاستدعاء المعطى.
البنية العامة
create_collation(name, callable)
المعاملات
name
اسم المقارنة المراد إنشاؤها.
callable
كائن قابل للاستدعاء.
سيُمرّر وسيطان نصّيان إلى الكائن القابل للاستدعاء، وسيعيد النتيجة -1
إن كان ترتيب الوسيط الأول أدنى من الوسيط الثاني، ويعيد 0
إن كان الوسيطان متساويين، ويعيد 1
إن كان ترتيب الوسيط الأول أعلى من الوسيط الثاني.
لاحظ أنّ هذه المقارنة تتحكّم في عبارة (ORDER BY في SQL) لكي لا تؤثّر عمليات المقارنة على عمليات SQL الأخرى.
لاحظ أيضًا أنّ الكائن القابل للاستدعاء سيتلقّى معاملاته على هيئة سلاسل بايتات نصية، والتي سترمّز في العادة إلى الترميز UTF-8.
أمثلة
يبين المثال التالي مقارنة خاصة تعمل على ترتيب النتائج "هذه ليست الطريقة الصحيحة لترتيب النتائج":
import sqlite3
def collate_reverse(string1, string2):
if string1 == string2:
return 0
elif string1 < string2:
return 1
else:
return -1
con = sqlite3.connect(":memory:")
con.create_collation("reverse", collate_reverse)
cur = con.cursor()
cur.execute("create table test(x)")
cur.executemany("insert into test(x) values (?)", [("a",), ("b",)])
cur.execute("select x from test order by x collate reverse")
for row in cur:
print(row)
con.close()
يمكن استدعاء التابع create_collation()
مع تمرير القيمة None
للمعامل callable
لحذف المقارنة الحالية:
con.create_collation("reverse", None)
انظر أيضًا
- التابع
Connection.create_function()
:ينشئ التابع دالة معرفة من قبل المستخدم يمكن استعمالها لاحقًا ضمن جمل SQL. - التابع
Connection.create_aggregate()
:ينشئ التابع دالة تجميع aggregate function معرّفة من قبل المستخدم.
مصادر
صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.