MS SQL Express DBを使用します。接続してデータを取得できます。ただし、データの挿入は機能しません。
cursor.execute("insert into [mydb].[dbo].[ConvertToolLog] ([Message]) values('test')")
エラーは表示されませんが、テーブルには何も挿入されません。データを取得した直後に、挿入された行が取得されます。しかし、何も保存されません。
MS SQL Server Management Studioでは、挿入は機能します。
データをコミットする必要があります。各SQLコマンドはトランザクション内にあり、トランザクションをコミットして、トランザクションをSQL Serverに書き込み、他のSQLコマンドで読み取れるようにする必要があります。
MS SQL Server Management Studioのデフォルトでは、自動コミットが許可されています。つまり、各SQLコマンドはすぐに機能し、ロールバックできません。
pyodbc入門ドキュメント の挿入例は
cursor.execute("insert into products(id, name) values ('pyodbc', 'awesome library')")
cnxn.commit()
またはパラメータを使用してより良い
cursor.execute("insert into products(id, name) values (?, ?)", 'pyodbc', 'awesome library')
cnxn.commit()
ドキュメントが言うように
Cnxn.commit()の呼び出しに注意してください。 コミットを呼び出す必要があります。そうしないと、変更が失われます!接続が閉じられると、保留中の変更はすべてロールバックされます。これにより、エラー回復が非常に簡単になりますが、commitを呼び出すことを忘れないでください。