Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将python与sql server 2012连接_Python_Sql Server_Pyodbc - Fatal编程技术网

将python与sql server 2012连接

将python与sql server 2012连接,python,sql-server,pyodbc,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 = 'MYDATA

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

此错误可能由以下行引起:

    cursor = conn()
应该改成

    cursor = conn.cursor()
conn
不是要调用的方法,这就是为什么会出现错误。请参见连接到文档中数据库的示例


此外,该行

    return cursor.fetchall
应改为:

    return cursor.fetchall()
fetchall
是一种方法,因此它需要
()


另外,在调用
cursor.close()
之前,不确定为什么要从
def main()
返回。它永远不会被称为。也许可以将
fetchall()
的结果设置为一个变量,调用
close()
,然后返回结果。例如:

    results = cursor.fetchall()
    cursor.close()
    return results
或者,如果您只是测试连接,而不使用Results执行任何操作,您是否需要返回任何内容:

    cursor.fetchall()
    cursor.close()
    return

您可以在此处查看:Hi-gpicchiarelli,我按照文章中的说明执行了操作:def conn():return pyodbc.connect('Trusted_Connection=yes',driver…),但我遇到了以下语法错误:编程错误:('42000',“[42000][Microsoft][SQL Server原生客户端11.0][SQL Server]varchar附近的语法不正确。(102)(SQLExecDirectW)”)这是一个SQL语法错误,我需要调整我的SQL查询。这是正确的。由于它是varchar,您必须指定它的总字符数。