通过nodejs访问.mdb文件

Bea*_*ast 31 ms-access-2007 node.js npm

我想访问.mdb文件并使用nodejs操作像​​插入/更新

请建议一个满足需求的图书馆.

谢谢.

Rob*_*ion 27

略有不同,但node-adodb对.accdb文件的效果很好:

https://www.npmjs.org/package/node-adodb

// Get the adodb module
var ADODB = require('node-adodb');
ADODB.debug = true;

// Connect to the MS Access DB
var connection = ADODB.open('Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\dbs\\my-access-db.accdb;Persist Security Info=False;');

// Query the DB
connection
    .query('SELECT * FROM [TestTable];')
    .on('done', function (data){
        console.log('Result:'.green.bold, data);
    })
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于运行Windows的情况.它会在mac或linux OS上抛出错误,因为它需要MSAccess驱动程序.如果您没有在Win OS上安装Access,则可以在此处安装适用于2010的驱动程序http://www.microsoft.com/en-us/download/details.aspx?id=13255 (8认同)
  • 当问题得到回答而不是批评时,这很好.想要做到这一点有很多理由,并且没有选择替换JET数据库.这个答案提供了许多数据库问题的解决方案.我很好奇它是如何纯粹的Javascript.如果这是真的,那么访问ADO COM非常令人印象深刻. (3认同)

Mik*_*ser 7

本文介绍将PHP连接到Access .mdb数据库的过程:http: //www.sitepoint.com/using-an-access-database-with-php/

Node.js的过程非常相似 - 它只是另一个ODBC数据源.

您需要一个节点ODBC包,例如:https: //github.com/wankdanker/node-odbc

然后,您将需要格式化ODBC连接字符串.例如.

"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=MyDatabase; Uid=; Pwd=;"
Run Code Online (Sandbox Code Playgroud)

  • 此外,如果您使用此驱动程序与64位应用程序(例如Node.js 64位)直接访问.mdb或.accdb文件,您可能会遇到问题.如果您这样做,以下可能是相关的:MS Office通常安装32位与64位应用程序不兼容的Microsoft Access驱动程序.您需要1)卸载MS Office 2)下载并安装Microsoft Access数据库引擎2010可再发行组件(x64),网址为http://www.microsoft.com/en-us/download/details.aspx?id=13255 3 )再次安装MS Office (2认同)