【问题标题】:Client side to connect to sybase IQ using Python3客户端使用 Python3 连接到 sybase IQ
【发布时间】:2017-08-10 15:06:32
【问题描述】:

我正在使用 Ubuntu,我想从我的客户端计算机连接到 sybase IQ 服务器(远程),我尝试根据 sybase 文档安装/使用 sqlanydb,但我在 sqlanydb.connect() 中看不到任何参数与sybase服务器的IP有关。我认为这个例程假设 sybase db 在 localhost 上,对吗?

  • 我是否还需要在客户端安装 sybase 才能使用 连接到那个远程sybase db?还是只有 sqlanydb 就足够了?

  • 如何使该驱动程序连接到远程服务器?

【问题讨论】:

    标签: python python-3.x sybase sap-iq


    【解决方案1】:

    您确实需要安装客户端软件。 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 快,但显然只有在客户端和服务器在同一台机器上时才有效。

    【讨论】:

    • 谢谢,是的,它有效,我还使用links=tcpip()... 找到了另一个解决方案我很想知道它与您的解决方案性能的区别!
    • links 参数较旧,当您不知道数据库服务器在哪台机器上运行时使用。它发出 UDP 广播数据包,服务器对其进行响应,然后从那里建立 TCP 连接。 host 参数是后来添加的,它准确地指定了服务器的运行位置。使用links 时,客户端会缓存结果,以便第二次及以后不必发送广播。除了客户端第一次连接到特定服务器时,没有性能差异。
    【解决方案2】:

    你可以连接下面的api,

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-13
      • 2019-05-12
      • 1970-01-01
      • 2020-10-09
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      相关资源
      最近更新 更多