连接python与sql server 2012

时间:2013-05-24 11:29:04

标签: python sql-server pyodbc

尝试使用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()

1 个答案:

答案 0 :(得分:0)

错误可能是由以下行引起的:

    cursor = conn()

应该改为

    cursor = conn.cursor()

conn不是调用方法,这就是您收到错误的原因。请参阅pyodbc's 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