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

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


ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في تسلسل المعاملات المعطى.
ينفّذ التابع أمر [[SQL]] على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في تسلسل المعاملات المعطى.


== البنية العامة ==
== البنية العامة ==
سطر 8: سطر 8:
executemany(sql, seq_of_parameters)
executemany(sql, seq_of_parameters)
</syntaxhighlight>
</syntaxhighlight>
 
== المعاملات ==
== ‎المعاملات ==


=== <code>sql</code> ===
=== <code>sql</code> ===


سلسلة نصية تتضمن جملة SQL المراد تنفيذها.
[[Python/str|سلسلة نصية]] تتضمن جمل [[SQL]] المراد تنفيذها.


=== <code>seq_of_parameters</code> ===
=== <code>seq_of_parameters</code> ===


ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في التسلسل seq_of_parameters. تسمح وحدة sqlite3 كذلك باستخدام مكرِّر ينتج معاملات بدلًا عن إنتاج تسلسل.
ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في التسلسل <code>seq_of_parameters</code>. تسمح [[Python/sqlite3|وحدة <code>sqlite3</code>]] كذلك باستخدام مكرِّر ينتج معاملات بدلًا عن إنتاج تسلسل.
   
   
== أمثلة ==
== أمثلة ==
سطر 51: سطر 51:
</syntaxhighlight>
</syntaxhighlight>


يستخدم المثال التالي المولدات:
يستخدم المثال التالي [[Python/generators|المولدات]]:


<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
سطر 73: سطر 73:


== انظر أيضًا ==
== انظر أيضًا ==
* [[Python/Cursor/executemany|التابع <code>Connection.executemany()‎</code>]]:ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في التسلسل seq_of_parameters.
*[[Python/Cursor/execute|التابع <code>Connection.execute()‎</code>]]: ينفّذ التابع جملة SQL المعطاة.
* [[Python/Cursor/executescript|التابع <code>Connection.executescript()‎</code>]]:هذا التابع من التوابع غير المعيارية والذي يسهل عملية تنفيذ جمل SQL متعددة دفعة واحدة.
 
*[[Python/Cursor/executescript|التابع <code>Connection.executescript()‎</code>]]: هذا التابع من التوابع غير المعيارية والذي يسهل عملية تنفيذ جمل SQL متعددة دفعة واحدة.
== مصادر ==
== مصادر ==
[https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executemany صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.]
[https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executemany صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.]

المراجعة الحالية بتاريخ 22:07، 18 سبتمبر 2018


ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في تسلسل المعاملات المعطى.

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

executemany(sql, seq_of_parameters)

‎المعاملات

sql

سلسلة نصية تتضمن جمل SQL المراد تنفيذها.

seq_of_parameters

ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في التسلسل seq_of_parameters. تسمح وحدة sqlite3 كذلك باستخدام مكرِّر ينتج معاملات بدلًا عن إنتاج تسلسل.

أمثلة

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

import sqlite3

class IterChars:
    def __init__(self):
        self.count = ord('a')

    def __iter__(self):
        return self

    def __next__(self):
        if self.count > ord('z'):
            raise StopIteration
        self.count += 1
        return (chr(self.count - 1),) # this is a 1-tuple

con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table characters(c)")

theIter = IterChars()
cur.executemany("insert into characters(c) values (?)", theIter)

cur.execute("select c from characters")
print(cur.fetchall())

يستخدم المثال التالي المولدات:

import sqlite3
import string

def char_generator():
    for c in string.ascii_lowercase:
        yield (c,)

con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table characters(c)")

cur.executemany("insert into characters(c) values (?)", char_generator())

cur.execute("select c from characters")
print(cur.fetchall())

انظر أيضًا

مصادر

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