0
votes

Insertion de valeurs de Python dans SQL Server

Je veux insérer des valeurs dans une table SQL Server, de Python.

Voici ma table dans SQL Server: P>

conn = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
                              'Server=????;'
                              'Database=DB;'
                              'Trusted_Connection=yes;')


cursor = conn.cursor()

sql = "INSERT INTO DB.Ref (Type_Ref, ID_match, Data) VALUES (?, ?, ?)"
cursor.execute(sql, (DATA[Type_Ref], DATA[ID_match], DATA[Data]))

conn.commit()
cursor.close()
conn.close()


7 commentaires

Pourquoi utilisez-vous des devis?


Toute erreur? Avez-vous essayé un SELECT pour voir si cela fonctionnait au moins? Et comme Tarik dise, pas de backquote dans SQL SV, utilisez [table]. [Colonne] à la place


Assurez-vous que l'appel de la fonction Connect est réussi.


Je l'ai déjà vérifié et j'ai une connexion ...


Vous manquez une parenthèse de fermeture à la fin de votre curseur.execute ligne


Comment s'appelle ta table? On dirait que c'est en fait type.ref pas db.ref ?


Type_Ref est le nom de la colonne et db_ref ​​est le nom de la table.


3 Réponses :


0
votes

Je pense que vous ne construisez pas correctement votre objet Conn. Lorsque j'essaie de faire correspondre votre modèle, je reçois un typeError. Essayez cela à la place:

server='server'
database='database'
user='username'
password='secret'

conn = pyodbc.connect(
    server=server,
    database=database,
    user=username,
    password=password,
    port=1433,
    driver='ODBC Driver 17 for SQL Server'
)


0 commentaires

0
votes

Essayez ce qui suit:

Columns = ['Type_Ref', 'ID_match', 'Data']
sql = "INSERT INTO dbo.Ref([Type_Ref], [ID_match], [Data]) VALUES (?,?,?)"
cursor.executemany(sql, DATA[Columns].values.tolist())
conn.commit()


0 commentaires

0
votes

Merci pour l'aide, j'ai résolu ce problème en supprimant la table dans SQL-Server et en créer un nouveau.


0 commentaires