node-adodb
    TypeScript icon, indicating that this package has built-in type declarations

    5.0.3 • Public • Published

    node-adodb

    一个用 Node.js 实现的 windows 上的 ADODB 协议。

    NPM Version Download Status Windows Status Test Coverage Node Version Dependencies

    安装

    NPM

    使用示例:

    ES6
    'use strict';
     
    const ADODB = require('node-adodb');
    const connection = ADODB.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=node-adodb.mdb;');
     
    // 不带返回的执行
    connection
      .execute('INSERT INTO Users(UserName, UserSex, UserAge) VALUES ("Newton", "Male", 25)')
      .then(data => {
        console.log(JSON.stringify(data, null, 2));
      })
      .catch(error => {
        console.error(error);
      });
     
    // 带返回标识的执行
    connection
      .execute('INSERT INTO Users(UserName, UserSex, UserAge) VALUES ("Newton", "Male", 25)', 'SELECT @@Identity AS id')
      .then(data => {
        console.log(JSON.stringify(data, null, 2));
      })
      .catch(error => {
        console.error(error);
      });
     
    // 带返回的查询
    connection
      .query('SELECT * FROM Users')
      .then(data => {
        console.log(JSON.stringify(data, null, 2));
      })
      .catch(error => {
        console.error(error);
      });
     
    // 带字段描述的查询
    connection
      .schema(20)
      .then(schema => {
        console.log(JSON.stringify(schema, null, 2));
      })
      .catch(error => {
        console.error(error);
      });
    ES7 async/await
    'use strict';
     
    const ADODB = require('node-adodb');
    const connection = ADODB.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=node-adodb.mdb;');
     
    async function query() {
      try {
        const users = await connection.query('SELECT * FROM Users');
     
        console.log(JSON.stringify(users, null, 2));
      } catch (error) {
        console.error(error);
      }
    }
     
    query();

    接口文档:

    ADODB.open(connection[, x64]): ADODB

    初始化数据库链接参数。

    ADODB.query(sql): Promise

    执行有返回值的 SQL 语句。

    ADODB.execute(sql[, scalar]): Promise

    执行无返回值或者带更新统计的的 SQL 语句。

    ADODB.schema(type[, criteria][, id]): Promise

    查询数据库架构信息。参考: OpenSchema

    调试:

    设置环境变量 DEBUG=ADODB。参考: debug

    扩展:

    该类库理论支持 Windows 平台下所有支持 ADODB 连接的数据库,只需要更改数据库连接字符串即可实现操作!

    数据库连接字符串:

    • Access 2000-2003 (*.mdb): Provider=Microsoft.Jet.OLEDB.4.0;Data Source=node-adodb.mdb;
    • Access > 2007 (*.accdb): Provider=Microsoft.ACE.OLEDB.12.0;Data Source=adodb.accdb;Persist Security Info=False; 或者   Provider=Microsoft.ACE.OLEDB.15.0;Data Source=adodb.accdb;Persist Security Info=False;

    注意:

    该类库需要系统支持 Microsoft.Jet.OLEDB.4.0 或者 Microsoft.ACE.OLEDB.12.0,对于 Windows XP SP2 以上系统默认支持 Microsoft.Jet.OLEDB.4.0,其它需要自己安装支持!

    推荐使用 Microsoft.ACE.OLEDB.12.0,获取地址: Microsoft.ACE.OLEDB.12.0

    Electron

    如果你想在 ASAR 包中运行这个模块,你需要做一些修改。

    1. asar 包中排除 adodb.js(使用 electron-builder, 可以配置 extraResources 将制定文件排除在外)
    "extraResources"[
      {
        "from": "./node_modules/node-adodb/lib/adodb.js",
        "to": "adodb.js"
      }
    ]
    1. 告诉 asar 从哪里运行 adodb.js (可以将配置写在 Electronmain.js 文件中)
    // 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';
    }

    Install

    npm i node-adodb

    DownloadsWeekly Downloads

    357

    Version

    5.0.3

    License

    MIT

    Unpacked Size

    232 kB

    Total Files

    26

    Last publish

    Collaborators

    • newton
    • nuintun