الفرق بين المراجعتين لصفحة: «Python/Cursor/fetchmany»
لا ملخص تعديل |
|||
سطر 12: | سطر 12: | ||
=== <code>size</code> === | === <code>size</code> === | ||
يمكن تحديد عدد الصفوف التي يجلبها التابع مع كل استدعاء عن طريق المعامل <code>size</code>. وفي حال عدم تحديد قيمة لهذا المعامل فإنّ قيمة خاصية <code>[[Python/ | يمكن تحديد عدد الصفوف التي يجلبها التابع مع كل استدعاء عن طريق المعامل <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>، وإن كان ذلك غير ممكنًا بسبب عدم توفّر العدد المحدّد من الصفوف، فإنّ التابع سيعيد الصفوف التي سيجدها فقط. | ||
يجب الانتباه إلى أنّ هناك بعض التبعات المترتّبة على قيمة المعامل <code>size</code> من ناحية الأداء، وللحصول على الأداء الأمثل يستحسن استخدام الخاصية <code>[[Python/ | يجب الانتباه إلى أنّ هناك بعض التبعات المترتّبة على قيمة المعامل <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>. | ||
== القيمة المعادة == | == القيمة المعادة == |
المراجعة الحالية بتاريخ 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.fetchone()
: يجلب التابع الصفّ row التالي من نتيجة الاستعلام، ويعيد تسلسلًا واحدًا فقط
- التابع
Connection.fetchall()
: يجلب التابع جميع الصفوف (المتبقّية) في نتيجة الاستعلام، ويعيد النتيجة على هيئة قائمة.
مصادر
صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.