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

من موسوعة حسوب
< Python‏ | Cursor
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>Cursor.fetchmany()‎</code> في بايثون}}</noinclude> يجلب التابع المجموعة اللاحقة من ا...'
 
 
(3 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:التابع <code>Cursor.fetchmany()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:التابع <code>Cursor.fetchmany()‎</code> في بايثون}}</noinclude>


يجلب التابع المجموعة اللاحقة من الصفوف rows في نتيجة الاستعلام، ويعيد النتيجة كقائمة.
يجلب التابع المجموعة اللاحقة من الصفوف rows في نتيجة الاستعلام، ويعيد النتيجة [[Python/list|كقائمة]].


== البنية العامة ==
== البنية العامة ==
سطر 12: سطر 12:


=== <code>size</code> ===
=== <code>size</code> ===
يمكن تحديد عدد الصفوف التي يجلبها التابع مع كل استدعاء عن طريق المعامل size. وفي حال عدم تحديد قيمة لهذا المعامل فإنّ قيمة خاصية arraysize في كائن المؤشر سيحدّد عدد الصفوف التي سيجلبها التابع. سيحاول التابع جلب الصفوف المحدّدة في معامل size، وإن كان ذلك غير ممكنًا بسبب عدم توفّر العدد المحدّد من الصفوف، فإنّ التابع سيعيد الصفوف التي سيجدها فقط.
يمكن تحديد عدد الصفوف التي يجلبها التابع مع كل استدعاء عن طريق المعامل <code>size</code>. وفي حال عدم تحديد قيمة لهذا المعامل فإنّ قيمة خاصية <code>[[Python/Cursor#.D8.A7.D9.84.D8.AE.D8.A7.D8.B5.D9.8A.D8.A9 arraysize|arraysize]]</code> في كائن المؤشر ستحدّد عدد الصفوف التي سيجلبها التابع (القيمة الافتراضية لهذه الخاصية هي <code>1</code> وهذا يعني أنّ التابع سيجلب صفًّا واحدًا فقط). سيحاول التابع جلب الصفوف المحدّدة في معامل <code>size</code>، وإن كان ذلك غير ممكنًا بسبب عدم توفّر العدد المحدّد من الصفوف، فإنّ التابع سيعيد الصفوف التي سيجدها فقط.


يجب الانتباه إلى أنّ هناك بعض التبعات المترتّبة على قيمة المعامل size من ناحية الأداء، وللحصول على الأداء الأمثل يستحسن استخدام الخاصية arraysize. وفي حال استخدام المعامل size فينصح بأنّ يحافظ هذا المعامل على القيمة ذاتها في كل استدعاءات الدالة fetchmany()‎.
يجب الانتباه إلى أنّ هناك بعض التبعات المترتّبة على قيمة المعامل <code>size</code> من ناحية الأداء، وللحصول على الأداء الأمثل يستحسن استخدام الخاصية <code>[[Python/Cursor#.D8.A7.D9.84.D8.AE.D8.A7.D8.B5.D9.8A.D8.A9 arraysize|arraysize]]</code>. وفي حال استخدام المعامل <code>size</code> فينصح بأنّ يحافظ هذا المعامل على القيمة ذاتها في كل استدعاء للتابع <code>fetchmany()‎</code>.


== ‎القيمة المعادة ==
== ‎القيمة المعادة ==
يجلب التابع الصفّ row التالي من نتيجة الاستعلام، ويعيد تسلسلًا واحدًا فقط، أو يعيد القيمة None في حال عدم توفّر المزيد من البيانات.
يجلب التابع المجموعة اللاحقة من الصفوف rows في نتيجة الاستعلام، ويعيد النتيجة كقائمة.
 
يعيد التابع قائمة فارغة في حال عدم توفّر المزيد من الصفوف.


== أمثلة ==
== أمثلة ==


يبين المثال التالي آلية عمل التابع:
يبين المثال التالي طريقة عمل التابع:


<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
سطر 47: سطر 49:


== انظر أيضًا ==
== انظر أيضًا ==
* [[Python/Cursor/fetchmany|التابع <code>Connection.fetchmany()‎</code>]]:يجلب التابع المجموعة اللاحقة من الصفوف rows في نتيجة الاستعلام،
*[[Python/Cursor/fetchone|التابع <code>Connection.fetchone()‎</code>]]: يجلب التابع الصفّ row التالي من نتيجة الاستعلام، ويعيد تسلسلًا واحدًا فقط
* [[Python/Cursor/fetchall|التابع <code>Connection.fetchall()‎</code>]]:يجلب التابع جميع الصفوف (المتبقّية) في نتيجة الاستعلام، ويعيد النتيجة على هيئة قائمة.
 
*[[Python/Cursor/fetchall|التابع <code>Connection.fetchall()‎</code>]]: يجلب التابع جميع الصفوف (المتبقّية) في نتيجة الاستعلام، ويعيد النتيجة على هيئة قائمة.
== مصادر ==
== مصادر ==
[https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchmany صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.]
[https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchmany صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.]

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


يجلب التابع المجموعة اللاحقة من الصفوف rows في نتيجة الاستعلام، ويعيد النتيجة كقائمة.

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

fetchmany(size=cursor.arraysize)

المعاملات

size

يمكن تحديد عدد الصفوف التي يجلبها التابع مع كل استدعاء عن طريق المعامل size. وفي حال عدم تحديد قيمة لهذا المعامل فإنّ قيمة خاصية arraysize في كائن المؤشر ستحدّد عدد الصفوف التي سيجلبها التابع (القيمة الافتراضية لهذه الخاصية هي 1 وهذا يعني أنّ التابع سيجلب صفًّا واحدًا فقط). سيحاول التابع جلب الصفوف المحدّدة في معامل size، وإن كان ذلك غير ممكنًا بسبب عدم توفّر العدد المحدّد من الصفوف، فإنّ التابع سيعيد الصفوف التي سيجدها فقط.

يجب الانتباه إلى أنّ هناك بعض التبعات المترتّبة على قيمة المعامل size من ناحية الأداء، وللحصول على الأداء الأمثل يستحسن استخدام الخاصية arraysize. وفي حال استخدام المعامل size فينصح بأنّ يحافظ هذا المعامل على القيمة ذاتها في كل استدعاء للتابع fetchmany()‎.

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

يجلب التابع المجموعة اللاحقة من الصفوف rows في نتيجة الاستعلام، ويعيد النتيجة كقائمة.

يعيد التابع قائمة فارغة في حال عدم توفّر المزيد من الصفوف.

أمثلة

يبين المثال التالي طريقة عمل التابع:

>>> import sqlite3
>>> conn = sqlite3.connect(":memory:")
>>> cur = conn.cursor()
>>> cur.execute("CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)")
<sqlite3.Cursor object at 0x7f0e97a11f10>
>>> purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
...              ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
...              ('2006-04-06', 'SELL', 'IBM', 500, 53.00),
...             ]
>>> cur.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
<sqlite3.Cursor object at 0x7f0e97a11f10>
>>> cur.execute("SELECT * FROM stocks ORDER BY price")
<sqlite3.Cursor object at 0x7f0e97a11f10>
>>> for row in cur.fetchmany(5):
...     print(row)
... 
('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0)
('2006-04-06', 'SELL', 'IBM', 500.0, 53.0)
('2006-04-05', 'BUY', 'MSFT', 1000.0, 72.0)

انظر أيضًا

  • التابع Connection.fetchall()‎: يجلب التابع جميع الصفوف (المتبقّية) في نتيجة الاستعلام، ويعيد النتيجة على هيئة قائمة.

مصادر

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