【问题标题】:I'm trying to connect to a remote Omnis Data file with ODBC using PHP我正在尝试使用 PHP 通过 ODBC 连接到远程 Omnis 数据文件
【发布时间】:2013-12-09 01:30:44
【问题描述】:

我们希望为客户创建一些 html 报告,以便他们轻松查看其 Omnis 数据库中的数据,这样他们就不必完全登录 Omnis 来获取一些基本信息。我们一直在使用 php 和 odbc,并且在我们的测试环境上一切正常,都在同一台计算机上。

然后我们开始对其进行更多测试,这次是将数据文件放到服务器上,并将 odbc 驱动程序链接到该数据文件。它死于:

Warning: odbc_connect() [function.odbc-connect]: SQL error: Unable to read disk (bad disk), SQL state 08001 in SQLConnect in C:\xampp\htdocs\jP\includes\database.php on line 22

ODBC 链接在 Excel 中运行良好,我们可以根据需要查看和读取所有记录。 服务器上的数据文件是本地计算机上数据文件的直接副本,用户名和密码相同。

php文件中的第22行是

$odbc_conn =  odbc_connect($name_odbc, $odbc_user, $odbc_pass)

用户名和密码都正确,我们也试过留空,这对本地数据有效,但对远程数据无效。

服务器位于同一个网络上,我们尝试了两台不同的服务器,结果相同。

任何提示将不胜感激。

【问题讨论】:

  • 数据文件上的权限是否足以让运行 PHP 解释器的进程能够访问它?此外,以下是微软对确切 sql 状态的评价:support.microsoft.com/kb/195566
  • @Zarathuztra,你知道我会去哪里改变这个烫发吗?仍然让我感到困惑的是,MS Excel 使用相同的 ODBC 系统 DSM 访问相同的数据文件没有问题
  • Microsoft (Windows) 有自己的权限系统,我不是 100% 熟悉(我是一个严格的 Unix 人),但我相信如果您在安全设置下查看文件属性,您可以找到他们。就以编程方式检查它们而言,我是 SOL。对不起:/

标签: php networking odbc


【解决方案1】:

兰德尔在线程上施放“复活”:

我遇到了完全相同的问题:尝试通过网络连接打开 OMNIS 数据文件。对我有用的解决方案是将 32 位 ODBC DSN 连接管理器中的文件名设置为文件 (\SERVER\Directory\File.cf1) 的网络路径,而不是通过驱动器映射。使用驱动器映射会导致此错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多