3

尝试使用 sql server 测试我的 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 回答