الفرق بين المراجعتين لصفحة: «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 يحمل الاسم المعطى مع الكائن القابل للاستدعاء المعطى.  
ينشئ التابع مقارنة 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> إن كان ترتيب الوسيط الأول أعلى من الوسيط الثاني.  


لاحظ أنّ هذا الترتيب يتحكّم في عبارة (ORDER BY في SQL) لكي لا تؤثّر عمليات المقارنة على عمليات SQL الأخرى.
لاحظ أنّ هذه المقارنة تتحكّم في عبارة ([[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)

انظر أيضًا

مصادر

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