OnceIO使用node-adodb从SQL数据库查询数据功能


发布人 siliviaw  发布时间 1490596652678
关键字 OnceIO  OnceVI 

 

报表查询功能

您可以应用OnceIO实现报表查询功能,从现有报表中查找相应信息并在网页上显示出来。

下图展示了某Access环境保存的用户信息报表UserInfo,以查询该报表中内容为例,向您介绍OnceIO报表查询功能的实现方法。

Form in Access


驱动及数据库安装

在OnceIO中访问access报表,需要搭建nodejs和access的接口,可以借助一个基于nodejs的access驱动程序实现。您可以选择合适的安装目录(此处,我们安装在E:\node-db-access文件夹中),在cmd窗口中执行:

npm install node-adodb

如果当前目录下尚未安装onceio,需要重新进行安装,即在cmd当前目录下执行:

npm install onceio

服务器调用及配置

创建js文件,首先获取onceio服务器模块,并实例化onceio对象app;获取node-adodb服务器模块,并将全局调试开关设置为true。

var OnceIO = require('onceio')
var app    = OnceIO()

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=QueryChart.accdb;Persist Security Info=False;');

ADODB.open函数的三个参数含义分别为:Provider为服务提供者的名称,Data Source代表需要查询的数据源,Persist Security Info为是否保存安全信息(详细解释参见persist security info)。其中Data Source中数据源路径可填写绝对路径,也可填写相对路径,在填写路径时,需要对“\”进行转义,即用“\"代替。


报表查询

以查询UserInfo报表中用户名信息为例,访问‘/dataquery/Username/:name‘,路径中’:name‘为变量,可用实际需要查询的姓名代替,内容被保存在req.params.name中。

ADODB.query()执行有返回值的SQL语句,“*” 代表返回所查询到信息所在栏对应的所有内容,方括号中UserInfo即为待查找内容所在表格,like后双引号中部分可以匹配任意一段含有req.params.name内容的字符串。

app.get('/dataquery/Username/:name', function(req, res) {
// Query the DB
connection
.query('SELECT * FROM [UserInfo] where  Username like "%' + req.params.name + '%" ')
.on('done', function (data){
    res.type('json')
    res.send(JSON.stringify(data.records, '    ', '    '))
})
.on('error', function() {
    res.send({ error: 'The info if not found' })
})
})

查询结果

若查询到相关信息,以json文件形式,在网页上返回查询到的表单中响应内容,否则,返回’The Info is not found'.

query example





回复 (0)
  • #
 关键字
OnceIO OnceVI

 关注
关注
OnceOA

OnceOA