Stack Overflow на русском Asked by diabloren on February 21, 2021
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)')
Мне кажется у вас в csv
файле данные разделены через ;
, соответственно, попробуйте читать его так:
reader = csv.reader(f, delimiter=';')
Correct answer by CrazyElf on February 21, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP