node.js 中的 ms 访问数据库连接

Posted

技术标签:

【中文标题】node.js 中的 ms 访问数据库连接【英文标题】:ms access db connection in node.js 【发布时间】:2022-01-14 23:50:41 【问题描述】:

我正在尝试使用nuintun's node-adodb package 连接到 Access 数据库。我已经在我的笔记本电脑@home 中成功连接到它并创建了一个 dist。包将其安装到我的电脑@office。但是,在将其安装到我的办公室笔记本电脑后,在连接访问数据库期间出现以下错误消息。

连接字符串: "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\\Temp\\Mdb.mdb;Persist Security Info=False;"

错误信息: Error: Spawn C:\WINDOWS\SysWOW64\cscript.exe error

我尝试了几种连接配置来解决这个问题,但无法完成。

使用此方法 (connection = ADODB.open(dbConn);) 我收到了上述错误消息。

使用此connection = ADODB.open(dbConn, true) 或此connection=ADODB.open(process.arch.includes('64') 或此connection = ADODB.open(connection, 'x64') 我收到以下错误消息:

Error: Spawn C:\WINDOWS\System32\cscript.exe error

任何帮助表示赞赏。

【问题讨论】:

@Erik-a 你对此有什么想法吗? @Barbaros-Özhan 你对此有什么想法吗? —— @fuczi-fuczi 你对此有什么想法吗? 你解决了吗?我面临问题。我已经安装了 Microsoft Access Database Engine 2016 Redistributable x64,但它给了我Provider cannot be found. It may not be properly installed 错误。我正在使用 MS Access 2021。 @AnirudhLou 现在我有不同的优先事项,无法为这个项目腾出时间。但是我会在尝试后发布结果。 【参考方案1】:

您可以尝试安装 MS Access 数据库引擎,然后通过您的代码调用它

Provider=Microsoft.ACE.OLEDB.16.0 (.....)

https://www.microsoft.com/en-us/download/details.aspx?id=54920。 它帮助我解决了您现在面临的同样问题。

@Ozgun Senyuva,还有一件事......因为打包后我发现了另一个问题,按照 https://github.com/nuintun/node-adodb/blob/master/README-EN.md 解决了

Electron
If you want to use this module in an electron app running from an asar package you'll need to make some changes.

Move adodb.js outside the asar package (in this example I use electron-builder, the extraResources option can move the file outside the asar package)
"extraResources": [
  
    "from": "./node_modules/node-adodb/lib/adodb.js",
    "to": "adodb.js"
  
]
Tell the module where to find adodb.js while running from an asar package (I added this in electron's main.js file)
// Are we running from inside an asar package ?
if (process.mainModule.filename.indexOf('app.asar') !== -1) 
  // In that case we need to set the correct path to adodb.js
  ADODB.PATH = './resources/adodb.js';

现在就像一个魅力!

【讨论】:

@Erik-a,我已经编辑了我的答案,我认为这应该是您现在关心的完整答案:)

以上是关于node.js 中的 ms 访问数据库连接的主要内容,如果未能解决你的问题,请参考以下文章

Python pyodbc 连接到 ms 访问数据库

postgres 与 node.js 连接中的 SASL 错误

使用 Node.js 从 AWS Lambda 函数连接到 MySql 数据库,没有连接回调

连接到 Heroku node.js 应用程序中的数据库,而不在 git 上显示身份验证详细信息

使用 Node JS 连接到在线托管的 PostgreSQL

如何将 node.js 连接到 mySQL 数据库? [复制]