小能豆

Python sybpydb.connect 函数无法传递主机名

python

我编写了一个 Python 脚本,它连接到我们的内部系统以提取数据以及它插入到 Sybase 数据库中的数据。第一步是通过传递数据库名称、用户和密码来连接到数据库。我想将主机名和应用程序名传递给连接函数,但我认为我无法传递参数。下面是我正在使用的功能。

conn=sybpydb.connect(servername=os.environ["SERVERNAME"],user=os.environ["USER"],password=os.environ["PASSWORD"])

同样,我编写了一个使用 ctlib 的 Perl 脚本。我在哪里可以传递应用程序名称和主机名?下面是我在 Perl 脚本中使用的函数。

**return Sybase::CTlib->new($user, $pswd, $srvr, $script, { CON_PROPS => { 'CS_HOSTNAME' => hostname}});**

我的问题是:我们在 Python 中是否也有类似的功能?我也可以接受任何其他选择。如果有人知道请告诉我。


阅读 112

收藏
2023-06-02

共1个答案

小能豆

在 Python 中,你可以使用 pyodbc 库连接到 Sybase 数据库,并传递应用程序名称和主机名作为连接属性。下面是一个示例:

import pyodbc

conn_str = (
    "DRIVER={Adaptive Server Enterprise};"
    f"SERVER={os.environ['SERVERNAME']};"
    f"DATABASE={database_name};"
    f"UID={os.environ['USER']};"
    f"PWD={os.environ['PASSWORD']};"
    "APP=YourAppName;"
    "HOST=YourHostName"
)

conn = pyodbc.connect(conn_str)

在上面的示例中,APP 属性用于设置应用程序名称,HOST 属性用于设置主机名。你可以根据你的需要修改这些值。

请确保已经安装了 pyodbc 库,并且已经正确配置了 Sybase ODBC 驱动程序。你可以在这里找到有关 pyodbc 的更多信息:https://github.com/mkleehammer/pyodbc

如果你使用的是不同的 Sybase Python 客户端库,例如 python-sybase,你需要查阅该库的文档以了解如何设置应用程序名称和主机名属性。

2023-06-02