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()
3 Réponses :
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'
)
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()
Merci pour l'aide, j'ai résolu ce problème en supprimant la table dans SQL-Server et en créer un nouveau. P>
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] code> à la placeAssurez-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 code> ligneComment s'appelle ta table? On dirait que c'est en fait
type.ref code> pasdb.ref code>?Type_Ref est le nom de la colonne et db_ref est le nom de la table.