【问题标题】:TopSpeed ODBC Driver for Python 3.x适用于 Python 3.x 的 TopSpeed ODBC 驱动程序
【发布时间】:2021-09-08 08:28:40
【问题描述】:

有没有办法让老式 TopSpeed (.TPS) 数据库在 Python 中工作?

基本上,我想将一个数据聚合 C# 应用程序转换为 Python Web 应用程序,该应用程序将来自 AS/400 DB2 的各种数据和来自映射驱动器的一些 .TPS 文件转换为 Python Web 应用程序。 DB2 部分已经处理完毕。

我一直认为这可以通过 PyODBC 和 SQLalchemy 完成,但我对这种数据库类型一无所知。什么是连接字符串?如何将映射驱动器连接到 Ubuntu 容器?是否有适用于此的 Linux 驱动程序或 unixODBC 是否有效?我不知道。

任何事情都可以提供帮助。谢谢。

这是用于 C# 应用程序的连接字符串。

【问题讨论】:

  • DRIVER={Topspeed ODBC Driver (Read-Only)} 看起来像一个有效的 ODBC 驱动程序名称。如果您尝试将它与 pyodbc 一起使用会发生什么?
  • 我尝试在安装了 TopSpeed 驱动程序的 Windows 机器上列出 pydodbc.drivers(),但它没有显示任何 Topspeed ODBC Driver (Read-Only) 驱动程序名称。

标签: python odbc unixodbc


【解决方案1】:

为未来的我和其他人回答我的问题。

TopSpeed 驱动程序仅适用于 16 位和 32 位 Windows。使用 32 位 Python 和 32 位驱动程序应该可以工作。

不幸的是,根据我的广泛研究,没有可用的 Linux 驱动程序,而且该驱动程序不是免费的。出于法律原因,我不会将司机的网站放在这里,尽管快速的谷歌搜索应该会告诉你购买它的方式。

此外,sqlalchemy 还没有方言,我认为不会。

出于我的目的,我使用pyodbc 连接如下所示:

TPS_CONNECTION_STRING = (
    'Driver={Topspeed ODBC Driver (Read-Only)};'
    'DBQ=X:\\;'
    'Extension=tps;'
)

TPS_DB_CONNECTION =pyodbc.connect(TPS_CONNECTION_STRING, autocommit=True)

其中DBQ.tps 文件的目录或位置。然后连接并执行查询

TPS_DB_CURSOR = TPS_DB_CONNECTION.cursor()
res = TPS_DB_CURSOR.execute('SELECT * FROM FILE')
TPS_DB_CURSOR.close()

由于我们使用pyodbc 连接,我们还可以使用pandas read_sql 函数将结果立即返回到DataFrame。只需传递连接对象;在这个例子中,它将是TPS_DB_CONNECTION

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2016-03-16
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 2018-09-30
    相关资源
    最近更新 更多