【问题标题】:Point perl at specific freeTDS library将 perl 指向特定的 freeTDS 库
【发布时间】:2015-01-12 06:05:05
【问题描述】:

我们在系统上编译了多个版本的 perl 和多个版本的 freeTDS。有没有一种方法可以让我准确地告诉 perl 使用哪个 freeTDS 版本,或者以某种方式内置?

当我在 perl 脚本中“使用 DBI”时调用的“默认”版本的 freeTDS 指向的版本似乎实际上无法正常工作。我通过使用 freeTDS 附带的 tsql 命令进行测试发现了这一点。如果我从那个版本运行它,失败。如果我从我们安装的另一个 freeTDS 版本运行,它连接得很好。

但现在我不知道如何将 perl 指向其他版本的 freeTDS。

【问题讨论】:

  • 您是使用 freeTDS 连接到 Sybase 还是连接到 MSSQL Server,还是两者都使用?
  • 从 Linux 连接到 MSSQL

标签: perl freetds


【解决方案1】:

这是一个关于如何指定要使用的模块版本的链接:perldoc

本质上是use module version;

这里是讨论配置 freeTDS 的 perlmonks 的链接:perlmonks

【讨论】:

  • use module version与本题无关;这只是关于指定您正在加载的 Perl 模块的最低版本。
【解决方案2】:

在安装/编译相应的 DBD 驱动程序(我猜是DBD::Sybase)时,必须指定 freeTDS 库。

【讨论】:

    【解决方案3】:

    我假设您使用DBD::Sybase 作为您的驱动程序。在构建模块时,必须提供两个环境变量:

    • $SYBASE:已经构建的 FreeTDS SDK 的路径:在 Linux 上,这将是包含两个子目录的目录的路径:
      • include.h 文件)
      • lib64.a 文件)
    • $FREETDS: FreeTDS 配置的路径
      • 在 Linux 上它必须包含 etc\*.conf,在 Windows 上它必须直接包含 *.conf 文件
      • IIRC,直到 DBD::Sybase 的测试阶段(即运行时)才使用此变量

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      • 2016-08-22
      • 2015-10-11
      • 2018-12-26
      相关资源
      最近更新 更多