msnodesql的使用
npm install msnodesql
使用msnodesql写的增删改查
var sql=require('msnodesql');
var conn_str="Driver={SQL Server Native Client 11.0};Server={127.0.0.1};Database=AccJiaowu;uid=sa;PWD=XXX;";
//添加
var insert = function(sqlscript,callback) {
sql.open(conn_str, function (err, conn) {
if (err) {
console.log('发生错误');
}
sql.queryRaw(conn_str,sqlscript, function (err, results) {
if (err) {
console.log(err);
callback(JSON.stringify("error"));
}else {
callback(JSON.stringify("ok"));
}
});
});
}
//修改
var update = function(sqlscript,callback) {
sql.open(conn_str, function (err, conn) {
if (err) {
console.log('发生错误');
}
sql.queryRaw(conn_str, sqlscript, function (err, results) {
if (err) {
console.log(err);
callback(JSON.stringify("error"));
}
else {
callback(JSON.stringify("ok"));
}
});
});
}
//查询返回集合
var selectList = function(sqlscript,callback) {
sql.open(conn_str, function (err, conn) {
if (err) {
console.log('发生错误');
}
sql.queryRaw(conn_str, sqlscript, function (err, results) {
if (err) {
console.log(err);
}else {
var txt=toJsonArray(results);
var jsonObj=eval("("+txt+")");
console.log(jsonObj);
callback(jsonObj);
}
});
});
}
//查询返回单个数据
var selectOne = function(sqlscript,callback) {
sql.open(conn_str, function (err, conn) {
if (err) {
console.log('发生错误');
}
sql.queryRaw(conn_str, sqlscript, function (err, result) {
if (err) {
console.log(err);
}else {
var txt=toJson(result);
var jsonObj=eval("("+txt+")");
console.log(jsonObj);
callback(jsonObj);
}
});
});
}
//将查询结果转成json串
function toJson(dt)
{
var jsonString;
if (dt != undefined && dt.rows.length == 1)
{
var rowLen=dt.rows.length;
var colLen=dt.meta.length;
jsonString="{";
for (var j = 0; j < colLen; j++)
{
if (j < colLen - 1)
{
jsonString+="\"" + dt.meta[j].name + "\":" + "\"" + dt.rows[0][j]+ "\",";
}
else if (j == colLen - 1)
{
jsonString+="\"" + dt.meta[j].name + "\":" + "\"" + dt.rows[0][j] + "\"";
}
}
jsonString+="}";
return jsonString;
}
return jsonString;
}
//将查询结果转成json数组
function toJsonArray(dt)
{
var jsonString;
if (dt != undefined && dt.rows.length > 0)
{
var rowLen=dt.rows.length;
var colLen=dt.meta.length;
jsonString="{";
jsonString+="\"data\":[";
for (var i = 0; i < rowLen; i++)
{
jsonString+="{";
for (var j = 0; j < colLen; j++)
{
if (j < colLen - 1)
{
jsonString+="\"" + dt.meta[j].name + "\":" + "\"" + dt.rows[i][j]+ "\",";
}
else if (j == colLen - 1)
{
jsonString+="\"" + dt.meta[j].name + "\":" + "\"" + dt.rows[i][j] + "\"";
}
}
if (i == rowLen - 1)
{
jsonString+="}";
}
else
{
jsonString+="},";
}
}
jsonString+="]}";
return jsonString;
}
return jsonString;
}
exports.insert = insert;
exports.update = update;
exports.selectOne = selectOne;
exports.selectList = selectList;
写sql调用封装的方法
var handlers = require("./handlers");
var result = "";
var http = require('http'),
url = require("url");
http.createServer(function (req,res){
var arg = url.parse(req.url,true).query; //方法一arg => aa=001&bb=002
console.log(arg);
console.log(url.parse(req.url).query);
var userID = arg.userID;
var userName = arg.userName;
var password = arg.password;
var age = arg.age;
var pathname = url.parse(req.url).pathname;
console.log("userID:"+userID+";userName:"+userName+";password="+password+";age:"+age+";pathname:"+pathname);
if(pathname == "/selectList"){
var selSql = "select userID,userName,password,age from Table_1 with(nolock) ";
handlers.selectList(selSql,function(data){
console.log("select data:"+data);
result = data;
});
}else if(pathname == "/selectOne"){
var selSql = "select count(1) as cnt from Table_1 with(nolock) where userName ='"+userName+"' and password='"+password+"'";
handlers.selectOne(selSql,function(data){
console.log("select data:"+data);
result = data;
});
}else if(pathname == "/insert"){
var insSql = "insert into Table_1 (userName,password,age) values('"+userName+"','"+password+"',"+ age +")";
handlers.insert(insSql,function(data){
console.log("insert data:"+data);
result = data;
});
}else if(pathname == "/update"){
var updSql = "update Table_1 set userName = '"+userName+"',password = '"+password+"',age = "+age+" where userID = "+userID;
handlers.update(insSql,function(data){
console.log("update data:"+data);
result = data;
});
}
//res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'}); //'Access-Control-Allow-Origin':'http://localhost/'}
console.log(result);
var str = arg.callback + '(' + JSON.stringify(result) + ')'
console.log(str);
res.end(str);
}).listen(8080,"localhost");
console.log('Server running at http://localhost:8080/')
ajax调用
$.ajax({
url: 'http://localhost:8080/selectList', //请求的是3000端口,应该属于跨域调用,因此dataType用jsonp
dataType: "jsonp",
//jsonpCallback: "_test", //可以自定义‘处理’函数,默认是callback
cache: false,
jsonp:'callback', //默认的传递处理函数是callback
timeout: 5000,
data : {},
success: function(data) {
var userList = data.data;
var tabStr="";
for(var i=0;i<userList.length;i++){
tabStr += "<tr>";
tabStr += "<td>"+userList[i].userID+"</td>";
tabStr += "<td>"+userList[i].userName+"</td>";
tabStr += "<td>"+userList[i].password+"</td>";
tabStr += "<td>"+userList[i].age+"</td>";
tabStr += "</tr>"
}
$("#dataTab").html(tabStr);
},
error: function(jqXHR, textStatus, errorThrown) {
alert('error ' + textStatus + " " + errorThrown);
}
});
msnodesql的使用的更多相关文章
- node.js 访问sql server的 node_modules “msnodesql"的安装编译方法
http://stackoverflow.com/questions/19661811/unable-to-download-msnodesql-0-2-1-v0-10-x64-msi 首先要满足以下 ...
- nodejs怎么同步从一个数据库查询函数中返回一个值
var sql=require('msnodesql'); var conn_str="Driver={SQL Server Native Client 11.0};Server={127. ...
- azure git 托管
azure git上传部署步骤:(首次提交)cd 至本地代码路径git initgit add .git commit –m "initial commit"git remote ...
- NodeJS下访问SQL Server
1.下载node-sqlserver (1)msnodesql (msnodesql-0.2.1-v0.8-x64.msi)下载地址:下载 自行选择与自己系统相符的版本,点击安装. (2)msnod ...
- Nodejs与Net 和SQL 交互利器Edge.js
https://github.com/tjanczuk http://www.cnblogs.com/joylee/archive/2013/02/05/msnodesql.html edge.js这 ...
随机推荐
- 禁用编译器自动生成的函数(Effective C++之06)
如果想让你的类定义出来的对象是独一无二的,即对象无法被复制,或者使用赋值操作符赋给另外一个对象,那么最好的方法就是禁用拷贝构造函数和赋值操作符.下面介绍几种禁用的方法.(方法来自Effective C ...
- POJ 2114 Boatherds 树分治
Boatherds Description Boatherds Inc. is a sailing company operating in the country of Trabantust ...
- Java优化之输出十万以内的质数
(1)未经优化时所耗费的时间: public class PrimeNumber { public static void main(String[] args) { long start = Sys ...
- 生成n位随机字符串
--1.借助newid() Go --创建视图(因为在函数中无法直接使用newid()) create view vnewid as select newid() N'MacoId'; go --创建 ...
- 【JDK】电脑上安装多个JDK ,修改JAVA_HOME后没有作用
电脑上装了 C:\Program Files\Java\jdk1.6.0_43 C:\Program Files\Java\jdk1.7.0_80 C:\Program Files\ ...
- TCP粘包/拆包问题
无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制. TCP粘包/拆包 TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河 ...
- java&Protocol Buffers
ps: Protocol Buffers简称PB PB 安装配置 下载 PB: 在 PB 官网,下载最新版(或者其他版本)PB,这里为了与 Java 项目中的 PB Maven 依赖版本一致,使用 P ...
- PHP 字符检测自定义函数
<?php /** * 转义字符替换 * * @param string $subject * @return string */public static function sReplace( ...
- Thymeleaf模板引擎使用
Thymeleaf模板引擎使用 什么是Thymeleaf Thymeleaf是一个Java库.它是一个XML / XHTML / HTML5模板引擎,能够在模板文件上应用一组转换,将程序产生的数据或者 ...
- c#静态构造函数
作用是初始化一些类的静态成员 1.在实例化类的对象,或者引用任何的静态成员之前,.Net自动调用此构造函数,而且只调用一次 2.没有任何修饰符,也没有参数 3.一个类只能有一个静态构造函数 4.无参的 ...