使用pyodbc连接到sybase,提供启动/停止数据库拒绝的请求(-75)

时间:2014-06-21 06:17:39

标签: sybase pyodbc

以下是我的配置: Windows 7 x64运行ActiveState Python 2.7.2.5(64位) Pyodbc 2.1.8 SQL Anywhere 12驱动程序12.00.01.3924。

当我尝试连接到我的sybase数据库时,出现以下错误:

cnxn = pyodbc.connect('DRIVER={'+driver+'};HOST='+host+';DATABASE='+database+';UID='+username+';PWD='+password+';PORT='+port)
  

ProgrammingError:('42000','[42000] [Sybase] [ODBC驱动程序] [SQL   任何地方]请求启动/停止数据库被拒绝(-75)   (的SQLDriverConnect); [42000] [Sybase] [ODBC驱动程序] [SQL Anywhere]请求   启动/停止数据库被拒绝(-75)')

我用不同版本的Pyodbc试过这个。我也试过32位版本的Python和Pyodbc,但没有成功。谷歌搜索没有给我任何具体的,虽然这个问题已经存在了一段时间。

如何无缝连接?我已经看到它在Windows XP上工作了一段时间,但我现在还不记得python和pyodbc版本。我尝试使用上面相同的一组Windows XP,但我得到了同样的错误。请帮忙!!!

2 个答案:

答案 0 :(得分:2)

每次我在谷歌搜索“pyodbc sybase示例”时都会登陆此页面,每次我必须重新发明答案时,请让我发布实际工作的内容。

在py2.7-Linux,py2.7-win和py3.5-win上测试过。由于这个问题现在已经有3年了,我只能在稍后版本的pyodbc 4.0.17(来自pypi和conda)和Sybase ASE 15上进行测试。

这主要基于Brian的回答(感谢Bryan!),但要获得“Tadam!”您需要单独传递端口:

cnxn = pyodbc.connect(driver=driver, server=host, port=port, 
                      database=database, uid=username, pwd=password)

要获取驱动程序列表,请运行:

pyodbc.drivers()

答案 1 :(得分:1)

连接字符串属性与Sybase看到herehere的任何内容都不匹配,但我也没有要测试的实例,因此请使用以下内容:盐粒。

尝试使用此语法为connect方法使用关键字,这样您就不必跟上Sybase特定的属性:

server = "{0}:{1}".format(host, port)
cnxn = pyodbc.connect(driver=driver, server=server, database=database,
                      uid=username, pwd=password)

另请注意,我将主机和端口组合为此example格式。