web-dev-qa-db-ja.com

SQL Updateステートメントですが、pyodbcを使用しています

Pyodbcドライバーを使用して、SQLを使用してMicrosoftアクセステーブルに接続しています。このテーブル内のフィールドを置き換える方法を知っている人はいますか?行を削除してから元に戻すことについては考えましたが、アクセスの自動番号が原因で主キーが変更されます。

Progressテーブルに挿入するためにこれを持っています:

        cnxn = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq=C:\\Users\\...............(file location)')
        cursor = cnxn.cursor()
        cursor.execute("insert into Progress(CockpitDrill,Mirrors,MoveOff,TurnLeft) values (?,?,?,?)",cockpit,mirrors,moveOff,turnLeft,)
        cnxn.commit()

では、これらのフィールドをどのように置き換えるのでしょうか。 CockpitDrillを「2」から「3」に変更したいとしましょう(これらはすべて文字列です)。

どんな助けでも大歓迎です。

10
MrPython

INSERTを実行するのと同じように、UPDATEステートメントを実行できます。

    cnxn = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq=C:\\Users\\...............(file location)')
    cursor = cnxn.cursor()
    cursor.execute("UPDATE progress SET CockpitDrill = ? WHERE progress_primarykey = ?", newcockpitdrillvalue, oldprimarykeyvalue)
    cnxn.commit()

それは役に立ちますか? 「progress_primarykey」は、データベーステーブルの主キーフィールドに付けた想定名です。これは、1つのレコードを変更したいだけで、その主キーがわかっていることを前提としています。

21
SKoczian