pythonでODBCアクセス

 PostgreSQLODBC経由でアクセスする試験ができたので、コードさらし。
 元になったソースは、Pythonで色々なデータベースを操作する
 テーブル定義やストアドプロシジャーは、元ソースをpsqlでポチポチ入力した。

 元ソースを改変するにあたって、ドライバー名に何を指定するのかとか、関数の引数に?を使うあたりが判り難かった。

import pyodbc

try:
    cnn = pyodbc.connect("DRIVER={PostgreSQL Unicode(x64)};SERVER=localhost;" +
                         "dbname=postgres;UID=postgres;PWD=xxxxxxxx")
    cur = cnn.cursor()
    print("コミットの試験==========================")
    pref_cd = 100
    pref_name = "モテモテ国"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD, PREF_NAME)
                VALUES (?, ?)""" , pref_cd, pref_name)

    print("ユーザー定義==========================")
    cur.execute("""SELECT * FROM test_sp(?,?)""" , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        print("%d %s" % (row[0], row[1]))

    cur.close()
    cnn.close()

except (pyodbc.Error) as e:
    print (e)
    print (e.args[1])