الفرق بين المراجعتين ل"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 في توثيق بايثون الرسمي.