客户端使用 Python3 连接到 sybase IQ

Client side to connect to sybase IQ using Python3

我正在使用 Ubuntu,我想从我的客户端机器连接到一个 sybase IQ 服务器(远程),我根据 sybase 文档尝试了 installing/using sqlanydb,但我没有看到sqlanydb.connect() 中与 sybase 服务器 IP 相关的任何参数。我认为这个例程假设 sybase 数据库在本地主机上,对吗?

您确实需要安装客户端软件。 python 驱动程序基本上是 dbcapi 客户端库的 python 接口,因此如果机器上没有安装客户端软件,则无法使用它。

要连接到远程服务器,您可以使用 HOST 参数。 connect() 函数将任何有效的连接参数作为参数,因此像 uid=steve;pwd=secretpassword;host=myserverhost:4567;dbn=mydatabase 这样的连接字符串将转换为:

sqlanydb.connect( uid = 'steve',
                  pwd = 'secretpassword',
                  host = 'myserverhost:4567',
                  dbn = 'mydatabase' )

记录了连接参数 here。如果未使用 HOST,客户端将尝试共享内存连接。共享内存比 TCP 更快,但显然只有当客户端和服务器在同一台机器上时才有效。

您可以连接到下面api,

import Sybase
db = Sybase.connect('server','name','pass','database')
c = db.cursor()
c.execute("sql statement")

确保 dsn 存在于 sql.ini 文件中。