问题标签 [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 投票
3 回答
3545 浏览

odbc - 我可以使用 pyodbc 和 mdbtools 建立无 DSN 连接吗?

我尝试了以下方法:

使用 DSN 条目连接到数据库工作正常,但我想在代码中提供一个数据库。

0 投票
4 回答
6950 浏览

ms-access - mdbtools 有替代品吗?

我正在使用 mdbtools 的 SQL 功能连接到.mdblinux 上的文件。Mdbtools 仍处于测试阶段,自 2007 年以来未更新,许多功能(如足够的 SQL 支持)尚不可用。

我需要的功能:

  • SQL,使用 python 绑定或通过 ODBC。
  • ASSQL 操作中的语句。
  • JOIN如果可能的话。
  • 在非 Windows 上运行。
  • 子选择将非常方便。
  • 不需要写支持。

是否有正在积极开发的替代品?

0 投票
2 回答
3657 浏览

ms-access - 将 MS Access 数据迁移到 MySQL:字符编码问题

我认为,我们有一个由 Access 2000 数据库生成的 MS Access .mdb 文件。我正在尝试使用以下命令使用 mdbtools 将表导出到 SQL:

这会产生我期望的文件,除了一件事:一些字符表示为问号。这:“他还没准备好”显示如下:“他还没准备好”,仅在某些情况下(主要是单/双大引号),其中内容可能是从 MS Word 粘贴到数据库中的。否则,数据看起来很棒。

我尝试了“export MDB_ICONV=”的各种值。我尝试在结果文件上使用 iconv,在 from/to 中使用 ISO-8859-1,在 from/to 中使用 UTF-8,在 from/to 中使用 WINDOWS-1250 和 WINDOWS-1252 和 WINDOWS-1256各种组合。但我还没有成功地让那些弯引号回来。

坦率地说,根据生成的文件的外观,我怀疑问题出在原始 .mdb 文件中,或者在 mdbtools 中。畸形字符都是单个问号,但很明显它们不是同一事物的畸形版本;所以(我的直觉说)结果文件中没有足够的数据;所以(我的直觉说)这个问题无法在结果文件中解决。

有没有人遇到过这个?前进的任何提示?FWIW,我没有也从未有过 MS Access——该文件来自第 3 方——所以这可能就像更改数据库上的某些内容一样简单,我很高兴听到这个消息。

谢谢。

0 投票
1 回答
904 浏览

linux - Microsoft Access 备份文件是否具有专有格式?

我的一个客户不知何故让他的网站丢失/被黑客入侵/被侏儒破坏,我有一个“有趣”的工作可以从备份中为他恢复它。它结合了 ColdFusion 和 Microsoft Access(糟糕!)。我在我的计算机上设置了一个 Railo 服务器,但是它不能使用开箱即用的 Microsoft Access .mdb 文件。然后我尝试使用 mdbtools 将数据库文件转换为可用格式。它适用于 .mdb 文件,但是其中一个文件具有文件扩展名 .BAK,我假设它是某种专有的 Microsoft Access 备份。

所以我的问题是:有谁知道是否有办法将 Microsoft Access .BAK 文件转换为 .mdb 文件?我显然尝试重命名它没有效果。

$ mdb-tables tradelionNew_db_200710080307.BAK
无法打开数据库。

另一个问题,此错误消息是否可能是由于文件受密码保护?

更多信息:我用文本编辑器打开了文件,第一行TAPE的开头是单词,然后是一堆随机(二进制)字符。.mdb 文件包含Standard Jet DB. 我相信这是指示文件类型的文件头的一部分。此外,在 .BAK 文件中,很多内容实际上都是以纯文本形式提供的,所以如果文件受密码保护,微软肯定在保护它方面做得不好。

0 投票
0 回答
2133 浏览

python - 在 Ubuntu 11.10 上使用 python 和 unixODBC 读取 MS Access JET 4 数据库 (.mdb):获取错误值

我在尝试在 Ubuntu 11.10 32 位上使用 Python 2.7.2(unixODBC 2.2.14、pyodbc 2.1.11 和 mdbtools 驱动程序)读取 Microsoft Access 数据库(JET 4 .mdb)时遇到了一些问题。是的,我知道这是一个可怕的想法,但奇怪的是,这是我能找到的最简单的解决方案。由于各种原因,我想避免将 .mdb 数据库转换为另一种格式(如 sqlite),但如果我无法弄清楚这似乎是唯一的解决方案。对于这个问题的长度,我深表歉意,而且我对 linux 和 odbc/数据库处理也很陌生。我花了 3 天时间试图解决这个问题,但最后两天却一无所获。

问题:我可以读取数据库,但值未正确编码/格式。

Python代码:

输出:

行:

应该:

我认为并且一直在努力弄清楚的是,在读取列信息(SQLDescribeCol.c)和/或获取数据(SQLFetch.c 和 SQLGetData.c)时出现错误。

以第 1 列和第 2 列为例。第 1 列是时间戳,并正确标识为时间戳 (SQL_TYPE_TIMESTAMP)。它还将正确的值读入缓冲区(Buffer = [03/14/03 15:40:00]),但似乎被 Column Size/StrLen 或 Ind 缩短为 8,因为结果输出为 8 个字符长 '03 /14/03',虽然我认为大小 8 指的是字节(?)。

第 2 列是整数值 1,但在 Buffer 中读取为 49。我还没有弄清楚为什么,但它将所有整数值读取为 ascii 代码/数字字符(1 变为 49,2 变为 50 等),这相当不方便当数字变大时(例如1728变成942815025),我不知道如何处理。双数在缓冲区中也被错误地读取。

SQLDescribeCol 来自日志,第 1 列和第 2 列(与下面链接的完整日志文件相同):

来自日志列 1 和 2 的 SQLGetData:

这些是 mdbtools 给出的表 abd 的列:

完整的 ODBC 日志文件: http: //pastebin.com/Q01ahwCW

如果有人对如何解决这个问题有任何提示(包括简单的数据库转换,因为我必须经常转换),将不胜感激!如果需要更多信息,我可以提供!

谢谢!

0 投票
1 回答
1048 浏览

codeigniter - CodeIgniter - Active Record 使用 Access ODBC 返回空结果

我在 Linux 系统上通过 mdbtools 连接到 Access DB,并在通过 Active Record 运行任何查询时返回空结果。日志中没有错误或任何内容。有任何想法吗 ?它可以顺利连接到数据库,并且我可以毫无问题地访问表或使用默认的 PHP 方法(例如 odbc_exec(...))运行查询。

数据库连接如下所示:

odbc.ini 看起来像:

连接:

0 投票
0 回答
654 浏览

php - Access DB 上的 SQL 查询使用 mdbtools 返回 null 或空结果

如果我使用除了SELECT *使用 ODBC 查询 Access DB 之外的任何条件,我会收到以下错误:No tuples available at this result index

有任何想法吗 ?这是特定的 GROUP BY 查询:

编辑

直接从 mdbtools 的命令行工具运行查询后,我得到以下信息:

0 投票
2 回答
1987 浏览

php - LAMP (PHP) 使用 MDBTools 驱动程序通过 ODBC 访问 Access 数据库

谁能告诉我在带有 PHP 的 Ubuntu 上使用 unixODBC 驱动程序是否存在有限的 SQL 支持?我已经在 Ubuntu 11.10 上设置了一个基本的灯服务器,我正在尝试查询一个 Access 数据库。我已经安装了 php5-odbc 和 MDB 工具。这是一些示例代码:

第一个查询,简单的选择,工作得很好。但是,当尝试执行联接(第二个注释查询)时,我收到 0 条记录。我能够在 Access 的 SQL 编辑器中成功运行 SQL,所以我知道我的 SQL 是正确的,并且连接在那里工作。有没有人有这方面的经验?我知道 Linux 不是为了与专有的 Microsoft 产品兼容,但不幸的是,我必须在 Ubuntu 上读取 Access 数据库。任何帮助是极大的赞赏。

0 投票
3 回答
6281 浏览

php - 使用 MDBTools 驱动程序与 PHP ODBC 的无 DSN 连接

我正在尝试使用MDBTools驱动程序从 Access 数据库中读取以odbc_connect在 Ubuntu 11.10 上执行。使用 DSN 设置时它工作正常/etc/odbc.ini

以下是 的内容/etc/odbc.ini

odbc.ini引用中的 Driver 属性MDBToolsODBC,所以,这是我的 odbc 设置/etc/odbcinst.ini

我的问题是,在使用时$conn = odbc_connect('logindb','','');,我必须使用数据库位置的硬编码值。理想情况下,我想指定odbc_connect使用无 DSN 连接的第一个参数,以便我的数据库文件可以是一个变量(将从不同的数据库读取)。就像是:

我也试过不带 odbc: 前缀,但没有用。谁能告诉我为什么指定 DSN 有效,但是当尝试使用看起来相同的属性动态指定它时,它不起作用?我认为这与无 DSN 连接中第一个参数的参数和内容有关。与往常一样,非常感谢任何帮助。

0 投票
1 回答
459 浏览

django - mdbtools 的 Django requirements.txt pip

我正在尝试在我拥有的 django 应用程序中使用 mdbtools。我在 requirements.txt 文件中包含了以下两行:

但我遇到了一些错误:

!Heroku 推送被拒绝,无法编译 Python 应用程序

我 sudo apt-get install mdbtools 和 mdbtools-dev 都没有问题。有谁知道发生了什么?