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

من موسوعة حسوب
< Python‏ | Cursor


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