К сожалению, нет простого способа сделать это. Лучший способ - предоставить table_name
, column_names
и values
и создать sql самостоятельно:
def insert_row(self, table_name, column_names, values):
params = [ '?' ] * len(values)
params = ','.join(params)
column_names = [ f'[{x}]' for x in column_names ]
column_names = ','.join(column_names)
sql = f'insert into [{table_name}] ({column_names}) values ({params})'
conn = self.getConnection()
with conn.cursor() as cursor:
conn.execute(sql, values)
В качестве альтернативы вы можете отправить в поле ввода column_name
s => value
s:
def insert_row(self, table_name, values):
params = [ '?' ] * len(values)
params = ','.join(params)
q, column_names = [], []
for column_name, value in values.items():
q.append(value)
column_names.append(f'[{column_name}]')
column_names = ','.join(column_names)
sql = f'insert into [{table_name}] ({column_names}) values ({params})'
conn = self.getConnection()
with conn.cursor() as cursor:
conn.execute(sql, q)
В качестве альтернативы, вы можете использовать django, что упростит управление.