• Stars
    star
    184
  • Rank 208,765 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A node.js javascript client implementing the ADODB protocol on windows.

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
  .transaction([`INSERT INTO Users(UserId, UserName, UserSex, UserBirthday, UserMarried) VALUES (10, "Tom", "Male", "1981/5/10", 0);`,
          `INSERT INTO Users(UserId, UserName, UserSex, UserBirthday, UserMarried) VALUES (11, "Brenda", "Female", "2001/1/11", 0);`,
          `INSERT INTO Users(UserId, UserName, UserSex, UserBirthday, UserMarried) VALUES (10, "Bill", "Male", "1991/3/9", 0);`])
  .then(data => {
    console.log("我们不会到达,因为生成了重复的ID。遇到错误时,请勿插入任何记录。");
  })
  .catch(error => {
    console.error(error);
  });

// 不带返回的执行
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.transaction(sql[]): 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';
}

More Repositories

1

qrcode

A pure JavaScript QRCode encode and decode library.
TypeScript
197
star
2

mailtip

A jquery email autocomplete plugin
JavaScript
17
star
3

command-manager

A command manager app
JavaScript
15
star
4

x-qrcode

A powerfull chrome extension for qrcode encoding and decoding.
JavaScript
9
star
5

koa-files

A static files serving middleware for koa.
TypeScript
8
star
6

grunt-cmd

A tools for cmd transport and deploy
JavaScript
5
star
7

webpack-dev-service

A koa 2 middleware for webpack development and hot reloading.
TypeScript
5
star
8

webpack-entry-manifest-plugin

Webpack plugin for generating an asset manifest with grouped entry chunks.
JavaScript
5
star
9

webpack-antd-builder

A webpack antd build configure tools.
TypeScript
4
star
10

payday2

payday2 mods
Lua
3
star
11

gulp-sample

The gulp-cmd and gulp-css sample
JavaScript
3
star
12

gulp-cmd

A gulp plugin for cmd transport and concat
JavaScript
3
star
13

react-nest-router

Declarative routing for React.
TypeScript
3
star
14

fetch

A pure JavaScript window.fetch polyfill.
JavaScript
2
star
15

inquirer-datepicker

Datepicker prompt for inquirer.js
JavaScript
2
star
16

URI

A simple WHATWG URI parser.
TypeScript
2
star
17

file-send

A http/https file send
JavaScript
2
star
18

webpack-glob-entries-plugin

Provides a way to glob for entry files in Webpack watch and non-watch modes.
JavaScript
2
star
19

swc-plugin-import

Modularly import plugin for swc.
JavaScript
2
star
20

bundler

An async file dependency bundle parser
TypeScript
1
star
21

antd-site

Antd site
TypeScript
1
star
22

react-nest-router-examples

React nest router examples.
JavaScript
1
star
23

vguilocalizationtool

Valve Source Engine game language resource file localization tool
C#
1
star
24

svgc-loader

SVGO jsx loader
TypeScript
1
star
25

html-webpack-bom-plugin

Add utf8 BOM for the html file.
JavaScript
1
star
26

switch-stream

A stream condition for switch/case
JavaScript
1
star
27

css-modules-types-loader

A webpack loader that dynamically generates TypeScript typings for CSS modules from css-loader.
TypeScript
1
star
28

svgo-loader

svgo loader for webpack.
TypeScript
1
star
29

Buffer

A buffer tool for javascript.
JavaScript
1
star
30

taro-bugs

Taro bugs reproduce.
TypeScript
1
star
31

gulp-css

A gulp plugin for css transport and concat
JavaScript
1
star
32

babel-issues

Babel issues.
JavaScript
1
star
33

taro-cases

Taro case
JavaScript
1
star
34

web-shell

A web shell tools.
TypeScript
1
star
35

wxwork-api

WXWork API for the node.js
JavaScript
1
star
36

LinkedList

A typescript array-like doubly linked list.
TypeScript
1
star
37

useVirtual

😎 ♻️ A tiny React hook for rendering large datasets like a breeze.
TypeScript
1
star
38

cmd-deps

Transform cmd and get cmd dependences
JavaScript
1
star
39

AssemblyBuffer

A buffer tool using WebAssembly.
TypeScript
1
star
40

impsorter-vscode

A vscode extension to sort selected import statements.
TypeScript
1
star
41

style-tokens

A tools can parse css text to css tokens
JavaScript
1
star
42

microtask

A pure JavaScript cross browser microtask
JavaScript
1
star
43

files-extractor

Extract files that have changed between the specified date
JavaScript
1
star
44

koa-interceptors

An Interceptors middleware for koa2
JavaScript
1
star