TransWikia.com

При попытки записи csv файла в базу данных выдает ошибку pyodbc.ProgrammingError: Неправильный синтаксис около конструкции ";"

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)')

One Answer

Мне кажется у вас в csv файле данные разделены через ;, соответственно, попробуйте читать его так:

reader = csv.reader(f, delimiter=';')

Correct answer by CrazyElf on February 21, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP