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