连接到SQL Server pypyodbc(Connecting to SQL Server wi

2019-08-31 07:07发布

我需要发送Unicode到SQL Server使用Python 2.7。 我失败,pymssql 。 现在我试图让pypyodbc工作(而不是pyodbc ),因为它提供了工作的Unicode例子 。 问题是,在本例中的连接字符串看起来并不像什么,我承认。 我看着这个和,一点点摸索,构建此字符串后:

conn = pypyodbc.connect("DRIVER={SQL Server};SERVER='MyServer';UID='me';PWD='MyPassword';DATABASE='db'")

回来一DatabaseError集中在连接字符串:

C:\Anaconda\lib\site-packages\pypyodbc.pyc in __init__(self, connectString, autocommit, ansi, timeout, unicode_results, readonly, **kargs)
---> 2 conn = pypyodbc.connect("DRIVER={SQL Server};SERVER='MyServer';UID='me';PWD='password';DATABASE='db'")

C:\Anaconda\lib\site-packages\pypyodbc.pyc in __init__(self, connectString, autocommit, ansi, timeout, unicode_results, readonly, **kargs)
---> 2273         self.connect(connectString, autocommit, ansi, timeout, unicode_results, readonly)

C:\Anaconda\lib\site-packages\pypyodbc.pyc in connect(self, connectString, autocommit, ansi, timeout, unicode_results, readonly)
---> 2321         check_success(self, ret)

C:\Anaconda\lib\site-packages\pypyodbc.pyc in ctrl_err(ht, h, val_ret, ansi)
---> 919                 raise DatabaseError(state,err_text)

DatabaseError: (u'08001', u'[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.')

我知道我的凭据是正确的,因为我已经用他们成功地连接使用pymssql。 我在想什么?

Answer 1:

取下单引号serveruidpwddatabase连接字符串的属性:

conn = pypyodbc.connect("DRIVER={SQL Server};SERVER=MyServer;UID=me;PWD=password;DATABASE=db")

由于pypyodbc提到兼容性pyodbc ,需要一分钟到查看pyodbc连接字符串的文档和pyodbc.connect()的例子。 我用这个语法pyodbc:

cnxn = connect(driver='{SQL Server}', server='localhost', database='test', uid='me', pwd='me2')


Answer 2:

留出连接字符串中的端口号(1433),扔在错误我从Linux客户端(但不是Windows 7中)。 这可能是一个配置问题,但我没有时间去追逐它。

把这个在那里,在情况下,它可以帮助其他人。



文章来源: Connecting to SQL Server with pypyodbc