3

SQL サーバーとの Python 接続をテストしようとすると、次のエラー メッセージが表示されました。

TypeError: 'pyodbc.Connection' オブジェクトは呼び出し可能ではありません。

これを解決する方法についてのアイデアはありますか? ありがとう。

import pyodbc
conn = pyodbc.connect('Trusted_Connection=yes', driver = '{SQL Server Native client 11.0}',
                  server = 'XXXX-PC', database = 'MYDATABASE')
def main():
        cursor = conn()
        cursor.execute('CREATE TABLE production (product_ID int, product_Name varchar')
        cursor.execute('SELECT* FROM production')
        return cursor.fetchall
        cursor.close()


if __name__ == '__main__':
            main()
4

1 に答える 1

0

このエラーは、次の行が原因である可能性があります。

    cursor = conn()

に変更する必要があります

    cursor = conn.cursor()

conn呼び出すメソッドではないため、エラーが発生します。pyodbc の GettingStartedドキュメント内のデータベースへの接続の例を参照してください。


さらに、ライン

    return cursor.fetchall

次のように変更する必要があります。

    return cursor.fetchall()

fetchallはメソッドなので、 が必要()です。


def main()また、電話する前になぜ戻ってきたのかわかりませんcursor.close()。呼び出されることはありません。おそらく、 の結果をfetchall()変数に設定し、 を呼び出してclose()、結果を返します。例えば:

    results = cursor.fetchall()
    cursor.close()
    return results

または、単に接続をテストしているだけで、結果に対して何もしていない場合でも、何かを返す必要がありますか?

    cursor.fetchall()
    cursor.close()
    return
于 2014-04-02T19:06:43.980 に答える