通过nodejs执行Ms Access数据库时出错

时间:2015-04-08 12:17:48

标签: node.js ms-access

我正在尝试在Windows 7中访问Ms Access 2007 db trough nodejs,但即使这个简单的查询也无法正常工作。我在命令提示符下收到以下消息(这是一个翻译,原文是葡萄牙语):“对象关闭时不允许操作”。有人有什么答案吗? javascript代码如下:

var ADODB = require('node-adodb');
    var connection = ADODB.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\teste\\dbteste.accdb;Persist Security Info=False;');

ADODB.debug = true;
connection
  .query('SELECT * FROM [Tabela];')
  .on('done', function (data){
    console.log('Result:'.green.bold, data);
  })
  .on('fail', function (data){
  });

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试更改connectionString:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\teste\\dbteste.accdb;Persist Security Info=False;

通过

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\teste\\dbteste.accdb;Persist Security Info=False;

另外,检查.accdb路径是否正确。

此外,为葡萄牙语编码添加ADODB.encoding = 'iso-8859-15';

我不确定,但您可以简单[Tabela]替换Tabela查询结束时;不是必需的。

答案 1 :(得分:0)

我也遇到过这个问题。这似乎是bug in node-adodb module。(最后一次见于2015年8月31日)

在链接页面中,您可以看到两个人遇到了同样的问题,node-adodb的开发人员要求他们上传示例(2015年7月17日)