التابع Cursor.executemany()‎ في بايثون

من موسوعة حسوب
< Python‏ | Cursor
مراجعة 22:05، 18 سبتمبر 2018 بواسطة Mohammed Taher (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>Cursor.executemany()‎</code> في بايثون}}</noinclude> ينفّذ التابع أمر SQL على جميع تسلس...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)


ينفّذ التابع أمر 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())

انظر أيضًا

  • التابع Connection.executemany()‎:ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في التسلسل seq_of_parameters.
  • التابع Connection.executescript()‎:هذا التابع من التوابع غير المعيارية والذي يسهل عملية تنفيذ جمل SQL متعددة دفعة واحدة.

مصادر

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