问题标签 [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 回答
1035 浏览

python - Python 错误:使用 python_access 包时缺少“mdb-schema”

在 Ubuntu 16.04、Python 3.6.2 上运行

我之前已经成功使用过这个包。事实上,它可以在另一台电脑上工作,但不是我需要它工作的电脑。 https://pypi.python.org/pypi/pandas_access

回溯(最近一次通话最后):

文件“”,第 1 行,在

文件“/home/nfw/anaconda3/lib/python3.6/site-packages/pandas_access/init .py ”,第 118 行,在 read_table schemas = to_pandas_schema(read_schema(rdb_file, schema_encoding),

文件“/home/nfw/anaconda3/lib/python3.6/site-packages/pandas_access/init .py ”,第 59 行,在 read_schema output = subprocess.check_output(['mdb-schema', rdb_file])

文件“/home/nfw/anaconda3/lib/python3.6/subprocess.py”,第 336 行,在 check_output **kwargs).stdout

文件“/home/nfw/anaconda3/lib/python3.6/subprocess.py”,第 403 行,以 Popen(*popenargs, **kwargs) 作为进程运行:

文件“/home/nfw/anaconda3/lib/python3.6/subprocess.py”,第 707 行,在init restore_signals,start_new_session 中)

_execute_child raise child_exception_type(errno_num, err_msg) 中的文件“/home/nfw/anaconda3/lib/python3.6/subprocess.py”,第 1333 行

FileNotFoundError:[Errno 2] 没有这样的文件或目录:'mdb-schema'

pandas_access 的代码可在此处获得

https://github.com/jbn/pandas_access/blob/master/pandas_access/init .py _

它应该只需要我安装的 MDB 工具并且它可以工作。我可以自己使用 MDB 工具打开 access 数据库。

0 投票
0 回答
491 浏览

c# - Mono + MDBTools:编码问题

我正在开发一个必须在 Linux 上读取 Access 数据库 (.mdb) 的 C# 应用程序。我正在使用 Mono 来编译和运行应用程序。

假设我有一个在 Access 2013 中创建的测试数据库。它有一个表:TestTable,具有默认 ID 列和使用“长文本”类型创建的 testField1 列。我插入三行,其中 testField1 列的这些值是:“foo”、“bar”、“baz”。数据库保存为“Access 2002-2003 数据库 (*.mdb)”。

生成的数据库(名为 Test.mdb)被传输到我的 Linux 机器上。作为健全性检查,我可以在数据库上运行 mdb-export:

到目前为止,一切都很好。现在,假设我们有一个读取表的 testField1 列的 C# 程序:

我希望运行这个程序会打印“foo”、“bar”和“baz”。但是,编译和运行程序不会产生以下输出:

我的猜测是这是一个编码问题,但我不知道如何解决它。有没有办法修复我的程序或它运行的环境,以便正确打印数据库的内容?我认为这是 ODBC 或 MDBTools 的问题,因为在类似的程序中,针对数据库字段的字符串相等性检查失败。

我正在使用 Ubuntu 16.10。mono --version输出Mono JIT compiler version 5.4.0.167 (tarball Wed Sep 27 18:38:59 EDT 2017)(我使用补丁从源代码构建它以修复 ODBC 的另一个问题)。通过Apt安装的MDBTools是0.7.1-4build1版本,和odbc-mdbtools包是同一个版本。

我知道我使用的工具和软件的组合是不寻常的,但不幸的是,我必须使用 C#,我可能必须使用 Mono,我必须使用 Access 数据库,并且我必须使用 ODBC 访问数据库. 如果没有其他方法,我想我可以将数据库转换为另一种格式(想到 SQLite)。

0 投票
1 回答
215 浏览

php - 为什么我的内部连接会引发语法错误?

为什么我的 sql 字符串会抛出语法错误?答:MDBTools 不支持 JOIN 或 ORDER BY 或其他 SEE http://github.com/brianb/mdbtools/blob/master/src/sql/lexer.l

此代码不起作用(附近有语法错误。):

更长/其他信息:
很确定它是“Ship To File”。“Cust Name”。扔近了。错误,因为省略“Ship To File”。“Cust Name”将错误更改为接近 INNER,这让我认为问题是带有空格的字段和表的命名空间问题。

用刻度替换带有空格的表和字段的双引号甚至会破坏最简单的查询(` 附近的语法错误)。INNER JOIN 查询似乎在 MS-Access 中工作正常,但使用括号而不是双引号。

此代码也不起作用(` 处的语法错误):

这段代码给了我一个记录/结果:

适用于 Linux 的 Windows 子系统、PHP 版本 5.5.9-1ubuntu4.22、apache2、MDBTools,无法更改数据库表或字段(目前通过符号链接访问数据库,而其他人仍在使用 MS Access 作为其界面)。

“Ship To File”。“客户编号”是类型(自动编号)“订单文件”。“客户编号”是类型(编号)

意见或建议?

0 投票
0 回答
59 浏览

node.js - 在 Meteor Galaxy 服务器上导入 MS Access 数据

我需要在 Galaxy 上托管的 Meteor 服务器上解析 MS Access 数据库。具体来说,它是一个 .accdb 文件。

如果我能够在 Galaxy 上安装mdbtools,npm 包mdb将用于此目的——但我相当肯定我无法在 Galaxy 托管的服务器上安装任何东西。

是否有一个简单的解决方案,或者我是否需要切换托管/在不同的主机上设置进程以将数据库转换为可用格式?


编辑:

我能够安装和使用mdbtools,但我无法让mdb在我的构建上工作。我创建了自己的mdbtools实现,称为mdb-parse。这在 Galaxy 中不起作用,但在我看来,如果您需要在 Node.js 上使用 .accdb 和 .mdb 文件,这将是唯一的解决方案。

0 投票
0 回答
402 浏览

php - 使用 MDBTools 驱动程序的带有 PHP PDO odbc 连接的 Access DB 的不可靠查询结果

我在 Ubuntu 16.04 机器上,并通过 PHP PDO 连接到 MS Access 数据库。我正在使用 MDBTools odbc 驱动程序。为此,我在终端中运行了以下命令:

我可以很好地连接到数据库。连接示例:

第一个查询:

第一次查询的结果:

请注意,在第一个查询中,许多字段显示值为 NULL,但这实际上不是数据库中的方式。我将在第二个查询中向您展示:

第二次查询的结果:

这些查询同时运行,因此 Asset_Spot_X 的值应该相同,但在一个我得到 NULL,在另一个我得到 1252。我做错了什么?看起来我正在做的查询非常简单,所以我不明白发生了什么。当我检查 errorInfo 和 errorCode 时,PDO 没有显示任何错误。

0 投票
1 回答
1282 浏览

mysql - 使用 mdbtools 将 access db 转换为 sql

当我尝试使用命令将我的 .accdb 导入 sql 数据库时

它抛出一个错误,上面写着

我认为这是一个数据类型错误,所以我将所有长整数转换为文本,但错误仍然存​​在。

我只是想从.accdb获取SQL DB所以如果有任何方法可以直接做到这一点。**

0 投票
0 回答
957 浏览

php - PHP PDO、Ubuntu、MDBTools 连接到 Access 数据库的问题

我在调试与 MSAccess 2010 .accdb 文件的连接时遇到问题。

我正在运行 Scotch Box Vagrant vm (v3.5) 并已通过sudo apt-get install mdbtools.

我的/etc/odbcinst.ini文件如下所示:

我还在 /etc/odbc.ini 中创建了一个数据源

我用来尝试连接的测试 php 文件被调用testMSACCESS.php,如下所示:

db 文件contacts-db.accdb位于机器根目录下的目录中/data

当我尝试通过在浏览器中加载脚本进行连接时,抛出的异常如下所示:

通过 cmd 行运行脚本时,我得到了更多信息:

这就是 unixODBC 跟踪日志的样子:

我可以在跟踪中看到故障发生的位置,[SQLDriverConnect.c][726]并且[SQLDriverConnect.c][1353]. 这似乎是一个连接错误,但我无法理解跟踪日志中以下块中包含的信息,[SQLGetDiagRec.c][680].

另外,我不明白为什么如果 PHP 可以找到数据库就找不到数据库,或者为什么它会说它不知道 Jet Engine 版本,因为该文件是使用 8 年旧版本的 MS Access(2010 )。

如果有人对如何调试错误有任何想法,我将不胜感激。

0 投票
0 回答
269 浏览

json - 将表关系从 mdb 文件转换为 JSON

我想从 mdb 文件中提取表关系和数据并将其转换为 JSON。我曾尝试使用 mdbtools、accessdb 中的 mdb-schema 等外部工具,但我只能生成数据而不能生成表关系。

有人可以提供输入吗?

0 投票
1 回答
64 浏览

ms-access - 访问访问设计视图字段说明

我有一个 Access 数据库,其中包含(理论上)在设计视图中可见的字段描述。我没有访问权限的副本。我可以使用mdbtools导出数据和架构,但这些不附带描述。有没有办法以编程方式提取这些描述?

0 投票
0 回答
545 浏览

python - 无法在 Linux 上的 Python 中运行 Access mdb 的查询

我想在 odoo 中读取 *.mdb 数据库并将一些数据导入 odoo,但我无法读取某些字段。

在 *.mdb 我有 2 个表
第一个表是 USERINFO 字段:SSN、名称、USERID
第二个表是 CHECKINOUT 字段:USERID、CHECKTIME、CHECKTYPE

我使用 mdbtools,当我进行此查询时它运行良好

我要的数据出来了。

但是当我运行这两个查询时它会出错。

pyodbc.Error: ('HY000', '驱动程序没有提供错误!')

在“USERID”字段中查找问题

在另一个查询中

行错误:c.CHECKTIME 附近的语法错误 c.CHECKTIME 附近的语法错误没有结果 'SELECT c.CHECKTIME, c.CHECKTYPE, u.SSN FROM CHECKINOUT c, USERINFO u WHERE c.USERID=u.USERID; ' 命令

pyodbc.OperationalError: ('08001', "[08001] 无法解析 SQL\n (1) (SQLExecDirectW)")

该查询在 DBeaver 中运行良好,但在 python 中运行不佳。