问题标签 [mdbtools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
531 浏览

php - 使用 odbc_exec libmdb mdbtools 耗尽允许的内存大小

我想通过 PHP (7.2.10)、SLE 12.3 连接到我的 MS Access 数据库。为此,我使用了 libmdbodbc1 0.7-3.1 软件包附带的 libmdbodbc.so.1 驱动程序(来源:mdbtools-0.7-3.1)。设置在 unixODBC 配置中完成:/etc/unixODBC/odbcinst.ini。

可以通过命令行 (isql) 连接到数据库并获取数据,并且不会返回错误。

但是当我试图通过 PHP 执行 SQL 查询时(连接通过:odbc_connect(Driver=MdbToolsOdbc;DBQ=%s, null, null);)

我收到错误“已用尽 2097152 字节的允许内存大小(尝试分配 140 TB)”。

这里仍然提到了这个问题:

https://github.com/brianb/mdbtools/issues/99

https://bugs.php.net/bug.php?id=75013&thanks=3

有人知道该问题的解决方案或解决方法吗?

很高兴得到一些回应!

谢谢你,最好的!

0 投票
4 回答
2453 浏览

python - 在 Mac 上将 MDB 文件导入 Python (pandas)

我在 Mac 上运行 python 3.6。我已经下载了一个 mdb 文件,但没有 Microsoft 访问权限,我想将每个表导入 python 并在那里使用它。

我已经安装了 mdbtools 并从 Spyder 运行以下命令:

我收到此错误:FileNotFoundError: [Errno 2] No such file or directory: 'mdb-tables': 'mdb-tables'

我也试过这个,但得到同样的错误:

我在 Anaconda 中使用 Sypder,我不确定这是否是一个问题。

mdb 文件位于此处:https ://www1.nyc.gov/assets/finance/downloads/tar/avroll_20.zip

我也尝试使用 pyodbc 来执行此操作,但是,它所需的驱动程序似乎不适用于 mac。

谢谢您的帮助。

0 投票
0 回答
225 浏览

php - MDBTools 驱动程序在 MS Acess 备忘录数据类型上无法正常工作

我正在尝试在将格式化的 MS Access 数据库上传到服务器后读取它们,以将其中的数据存储到 MySQL 服务器中。该数据库包含 memo 数据类型,通过使用带有 MDBTools 和 PDO 的 unixODBC 是不可读的。

我在 ubuntu18.04.1 服务器上运行 PHP 7.2.17-1,安装了 unixODBC 并且 PDO 库启动并运行,由于它无法读取备忘录数据类型,我从这里接受了一个建议,而不是使用 PDO 类进行操作访问数据库,我使用ODBC 函数来完成这项工作。它在一定程度上显示了修剪后的值,但没有显示正确的文本,它也将数字转换为浮点值。

例子:

以前,我的代码使用不获取备忘录数据类型的 PDO 类看起来像这样。

我现在正在使用 ODBC 函数,它检索备忘录数据类型的修剪值并将数字转换为浮点数,在十进制值之前附加多个零。

PS:我已按照建议配置了 odbc.ini,并尝试将查询列转换为 varchar(200),这会在建立连接时产生错误,这种情况下可能不支持。

我期望 ODBC 函数返回完整长度的备忘录数据类型字符串,但它显示修剪后的值,以及作为数字而不是浮点值返回的数字数据类型。

0 投票
1 回答
3014 浏览

python-3.x - 从 Linux 上的 Python 连接到 MS Access

我正在尝试连接到 linux 环境中的访问 .mdb 文件。到目前为止,我已经在这样的窗口中完成了这个:

现在在 Ubuntu 18 中尝试这个,这将不起作用,因为 Microsoft 访问驱动程序不可用。我一直在尝试解决这个问题,主要是使用 MDBTools。安装 MDBTools 并将驱动程序更改为后MDBTools出现此错误:

我不知道如何解决这个问题,消息来源说下载一个 libmdbodbc 包,但似乎这个包不再存在。

0 投票
0 回答
696 浏览

php - Mac OS X(通过 brew)和 PHP 上的 unixODBC

我正在尝试在 Mac OS X 10.14 comp 上使用 ODBC。

我的开发环境有一个 nginx 网络服务器和 php 7.3.10。在遵循一些指南之后,我安装mdbtools了 odbc 支持。

isql我可以通过 odbc 名称或 DSN读取我的访问数据库。

使用这两个连接命令,isql连接正常,我可以使用 aSELECT * FROM MyTable查看数据。

现在,问题:

使用 PHP odbc_connect

PHP错误:

使用 PDO:

使用这两种连接方法会导致 odbc 死掉(nginx 返回 404 错误)。

ODBC 跟踪:

用于测试的配置:

我的odbc.ini: 我的odbcinst.ini

任何人都可以帮我解决这个问题吗?

编辑

在 mdbtools 存储库上找到了这个“错误报告”。这似乎是同样的问题。我已经尝试了上次评论中建议的解决方案,但它不起作用。

编辑2

SQL_CUR_USE_ODBC用作odbc_connect()返回nginx404错误的参数(odbc 进程死亡,与 pdo 相同的错误)。使用SQL_CUR_USE_DRIVER, 返回指定的错误(这篇文章中的致命错误详细信息)。

0 投票
0 回答
133 浏览

php - PHP PDO 连接返回 SQLSTATE[00000](在终端上工作,但在网络上不工作)

我正在尝试在 linux(Ubuntu 18.04) 环境中通过我的网络对 Microsoft Access 数据库运行 php(7.2) 查询。我使用 Nginx 作为我的网络服务器和 MDBTools 作为我的驱动程序。我设置了 odbc.ini 和 odbcinst.ini DSN,并尝试了多种访问数据库的方法。我的连接字符串中的“仪表板”是我的 DSN 的名称。

这是我的 php 查询脚本:

当我$ php Query.php在终端中运行时,脚本按预期执行。当我在 nginx 网络服务器中加载我的页面时,我收到此错误:

PDOException: SQLSTATE[00000] SQLConnect: 0 in /srv/me/www/Query.php:8 堆栈跟踪: #0 /srv/me/www/Query.php(8): PDO->__construct('odbc:dashboard ') #1 {主}

由于 try/catch 结束了我的脚本,第 8 行(我初始化新 PDO 的行)之后没有任何内容执行。

我为初始化行尝试了多种不同的语法,但没有任何效果。我是否遗漏了一些明显的东西,或者这个特定的设置不能完成?

谢谢

0 投票
0 回答
173 浏览

php - mdbtools 和 unixodbc 的 odbc_connect 问题

我想从linux机器(centos 6.10)访问windows机器(windows server 2003)中的mdb文件

我正在使用 mdbtools 和 unixodbc

到目前为止我做了什么

我在终端中使用 isql 检查连接

它返回已连接我可以使用这样的查询成功查询数据库

现在我想使用 php 连接访问数据库

我收到了这个错误

我目前正在使用

0 投票
0 回答
35 浏览

php - MDBTools:所有查询都失败

我正在将一个项目移动到一个 Ubuntu 服务器,该服务器通过一个安装的共享文件夹连接到一个用于 MS Access 数据库的 Windows 服务器。我已经安装了 MDBTools 作为驱动程序,但目前我的所有查询似乎都失败了,在 Windows 上它们工作正常。所以我正在寻找一种方法来修复查询或一起安装不同的驱动程序。像这样的查询失败:

好像. 是什么给出了错误,因为这样的查询确实有效:

虽然这不是:

希望我的情况清楚吗?我不介意更改查询,但如果有人知道更好的方法,我愿意接受建议。

0 投票
1 回答
209 浏览

amazon-ec2 - 如何在 EC2 实例上安装 mdbtools?

mdbtools在 EC2 实例上安装,我输入了以下内容:

但我得到以下

我不知道如何在 EC2 上解决这些问题。

有什么建议么?

0 投票
1 回答
519 浏览

python - 如何使用 python 64 位读取 .mdb 文件?

我在 pandasaccess 中收到 filenot found 错误

MDB 工具也不起作用

mdb-tables :术语“mdb-tables”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在 line:1 char:1 + mdb-tables .\Classes\Test-results.mdb

Pyodbc 仅适用于 win 32 位

类似这里如何使用 64 位 python 和 odbc 驱动程序从 32 位 .mdb 读取

但仍然没有答案