الفرق بين المراجعتين لصفحة: «Python/Connection/create collation»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>Connection.create_collation()</code> في بايثون}}</noinclude> ينشئ التابع ترتيبًا collation يح...' |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:التابع <code>Connection.create_collation()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:التابع <code>Connection.create_collation()</code> في بايثون}}</noinclude> | ||
ينشئ التابع | ينشئ التابع مقارنة collation يحمل الاسم المعطى مع الكائن القابل للاستدعاء المعطى. | ||
== البنية العامة == | == البنية العامة == | ||
سطر 8: | سطر 8: | ||
create_collation(name, callable) | create_collation(name, callable) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == المعاملات == | ||
=== <code>name</code> === | === <code>name</code> === | ||
اسم | اسم المقارنة المراد إنشاؤها. | ||
=== <code>callable</code> === | === <code>callable</code> === | ||
سطر 18: | سطر 18: | ||
كائن قابل للاستدعاء. | كائن قابل للاستدعاء. | ||
سيُمرّر وسيطان نصّيان إلى الكائن القابل للاستدعاء، وسيعيد النتيجة -1 إن كان ترتيب الوسيط الأول أدنى من الوسيط الثاني، ويعيد 0 إن كان الوسيطان متساويين، ويعيد 1 إن كان ترتيب الوسيط الأول أعلى من الوسيط الثاني. | سيُمرّر وسيطان نصّيان إلى الكائن القابل للاستدعاء، وسيعيد النتيجة <code>-1</code> إن كان ترتيب الوسيط الأول أدنى من الوسيط الثاني، ويعيد <code>0</code> إن كان الوسيطان متساويين، ويعيد <code>1</code> إن كان ترتيب الوسيط الأول أعلى من الوسيط الثاني. | ||
لاحظ أنّ | لاحظ أنّ هذه المقارنة تتحكّم في عبارة ([[SQL/order by|ORDER BY]] في [[SQL]]) لكي لا تؤثّر عمليات المقارنة على عمليات [[SQL]] الأخرى. | ||
لاحظ أيضًا أنّ الكائن القابل للاستدعاء سيتلقّى معاملاته على هيئة سلاسل بايتات نصية، والتي سترمّز في العادة إلى الترميز UTF-8. | لاحظ أيضًا أنّ الكائن القابل للاستدعاء سيتلقّى معاملاته على هيئة سلاسل بايتات نصية، والتي سترمّز في العادة إلى الترميز UTF-8. | ||
سطر 26: | سطر 26: | ||
== أمثلة == | == أمثلة == | ||
يبين المثال التالي | يبين المثال التالي مقارنة خاصة تعمل على ترتيب النتائج "هذه ليست الطريقة الصحيحة لترتيب النتائج": | ||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
سطر 52: | سطر 52: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
يمكن استدعاء التابع create_collation مع تمرير القيمة None للمعامل callable لحذف | يمكن استدعاء التابع <code>create_collation()</code> مع تمرير القيمة <code>None</code> للمعامل <code>callable</code> لحذف المقارنة الحالية: | ||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> |
المراجعة الحالية بتاريخ 19:55، 18 سبتمبر 2018
ينشئ التابع مقارنة 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 في توثيق بايثون الرسمي.