При попытки записи csv файла в базу данных выдает ошибку pyodbc.ProgrammingError: Неправильный синтаксис около конструкции ";"
from tkinter import*
import csv
import pyodbc
def vipoln():
conn = pyodbc.connect("DRIVER={SQL SERVER};SERVER={test}; database={test};UID={test};PWD={12345}")
with open ('zzzz.csv', 'r') as f:
reader = csv.reader(f)
columns = next(reader)
query = 'insert into testzodaniy({0}) values ({1})'
query = query.format(','.join(columns), ','.join('?' * len(columns)))
cursor = conn.cursor()
for data in reader:
cursor.execute(query, data)
cursor.commit()
conn.close()
root=Tk()
root.title("Главное меню")
root.geometry("400x300")
vipolnit_btn=Button(root,text='выполнить',width=35,command=vipoln)
vipolnit_btn.grid(row=0,column=0,padx=10,pady=10)
root.mainloop()
При попытки записи csv файла в базу данных выдает ошибку:
cursor.execute(query, data)
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции ";". (102) (SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось выполнить подготовку инструкций. (8180)')
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Мне кажется у вас в csv файле данные разделены через ;, соответственно, попробуйте читать его так:
reader = csv.reader(f, delimiter=';')