node.js通过msnodesql访问SQL Server

Node.js一直都与mysql , Nosql 配合使用,对于Sql  Server却没有很好的支持,一直都是小众技术人员自己编写访问程序。

2012年微软公司官方发行一款Node.js访问Sql Server的驱动程序——msnodesql ,让Node.js访问SQL Server更加简单。

安装

msnodesql 下载地址:下载  自行选择与自己系统相符的版本,点击安装。

msnodesql 官方地址:https://github.com/WindowsAzure/node-sqlserver 含wiki 和 疑问解答 。

在node.js环境下,安装方式和其他驱动安装一样,安装命令:nmp install msnodesql 

安装过程中需要注意的两个问题:

1、安装之前必须安装SQL Server Native Client 11.0 32位下载地址:下载 64位下载地址:下载 ,安装此程序不需要SQL server2012支持,经测试,SQL 2005和SQL 2008 可以正常安装使用。

2、安装过程中,如出现错误,检查是否在管理员界面下进行命令安装,这个问题我纠结了好长一段时间。

    

(右键——以管理员身份运行)

 

使用

引用驱动 

 var sql = require('msnodesql');

建立数据库连接 

var conn_str = "Driver={SQL Server Native Client 11.0};Server={.};Database={nodetest};uid=sa;PWD=123456;";

不要被 SQL Server Native Client 11.0 吓到,可以完美支持sql 2005和sql 2008 的。

打开数据库

sql.open(conn_str, function (err, conn) {
    if (err) {
        console.log("Error opening the connection!");
        return;
    }
 
//这里是查询语句
});

SQL操作

复制代码
sql.queryRaw(conn_str,"SELECT * FROM TestTable", 

function (err, results) 
{ 
if (err) 
{ 
console.log("Error running query!"); 
return; 
} 
for (var i = 0; i < results.rows.length; i++) 
{ 
  console.log("0:" + results.rows[i][0]); } 
});
复制代码

 

注意:此处的写法与wiki文档的写法有些不同,我用过wiki文档的写法(https://github.com/WindowsAzure/node-sqlserver/wiki),有时会出现无法查询数据的情况,w我这种写法是参考源代码中参数的写法,queryRaw包含四个参数:

connectionstring:链接字符串(wiki里面的居然没有用这个,直接用function里面的参数 conn,搞不懂)
query:SQL语句
param:参数(可选的)
callback:回传函数,操作完以后返回的事件

一个完整的例子
复制代码
var sql=require('msnodesql');
var conn_str="Driver={SQL Server Native Client 11.0};Server={.};Database={nodetest};uid=sa;PWD=123456;";
 
sql.open(conn_str, function (err, conn) {
        if (err) {
            console.log('发生错误');
        }

        sql.queryRaw(conn_str, "select * from users", function (err, results) {
            if (err) {
                console.log(err);
            }
            else {
                for (var i = 0; i < results.rows.length; i++) {
                    console.log(results.rows[i][0] + results.rows[i][1]);
                }
            }
        })

    })
复制代码

 

 

作者:joylee

出处:https://www.cnblogs.com/joylee/archive/2013/02/05/msnodesql.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   IT米粉  阅读(21009)  评论(3编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题