Tag: sql server

writestream和表示为json对象?

我可能没有深入,但我真的需要一些工作。 我认为一个写/读stream将解决我的问题,但我不太了解它的语法或工作需要什么。 我阅读stream手册,并认为我理解了一些基础知识,但是当我尝试将其应用于我的情况时,它似乎打破了。 目前我有这个作为我的信息的关键。 function readDataTop (x) { console.log("Read "+x[6]+" and Sent Cached Top Half"); jf.readFile( "loadedreports/top"+x[6], 'utf8', function (err, data) { resT = data }); }; 即时通讯使用Jsonfile插件节点,这基本上缩短了fs.write,并使其更容易写入,而不是不断地写fs.write和读取catch和try块。 无论如何,我想在这里实现一个stream,但我不确定将会发生什么,我的明确结束,如何接收对象。 我认为,因为它的streamexpression不会做任何事情的对象,直到它收到它? 或者我将不得不写一个callback,以确保什么时候我的函数被调用,stream完成之前快递发送的对象,以满足ajax请求? app.get('/:report/top', function(req, res) { readDataTop(global[req.params.report]); res.header("Content-Type", "application/json; charset=utf-8"); res.header("Cache-Control", "max-age=3600"); res.json(resT); resT = 0; }); 我希望如果我改变阅读部分stream将它分离两个问题。 由于较大的json对象的读取速度,当浏览器发出ajax调用时,有时会接收到公正的json文件。 (这可能是我需要解决的callback问题,但是stream应该使其更加一致)。 然后,第二,当我加载这个节点的应用程序,它需要运行30 +写入文件,而它从我的数据库中获取数据。 目标是断开浏览器从数据库端,所以节点作为数据库通过阅读和写作。 这是由于一个旧的SQL服务器已经被大量的请求轰炸(陈旧的数据不是一个问题)。 任何帮助这里的语法? 有一个教程,我可以看到在一个人的代码pipe道响应写入stream? […]

来自Node和SQL Server Management Studio的存储过程执行时间差别很大

我的程序从Node.js(Azure移动服务)运行5.7秒( successcallback开始和发送查询之间的时间)。 用同样的参数从SSMS运行了0.4秒。 我怎样才能debugging这个问题? 我对问题来源的看法是: 糟糕的执行计划 Node.js连接设置错误(可能无法更改) Node.js和Azure SQL Server之间的连接速度很慢 驱动程序问题(Azure 在内部使用此testing版的node-sqlserver )

Node + SQL Server:以stream的forms获取行数据

我尝试使用Microsoft驱动程序的 Node.Js连接器与SQL Server进行通信。 在连接器文档中,我find了一个名为'stream'的好选项。 它增加了asynchronous获取行对象的能力。 我的数据有一些具体的 – 一些列有大的二进制数据(> 100 Mb)。 所以即使是一排也许真的很大。 我正在寻找能够将每行数据作为一个stream。 这是可能的.NET驱动程序( CommandBehavior.SequentialAccess枚举)。 在Node.js中可能吗? 更新这里是一个代码来演示这个问题: 自定义可写stream模块: var stream = require('stream'); var util = require('util'); function WritableObjects() { stream.Writable.call( this, { objectMode: true } ); } util.inherits( WritableObjects, stream.Writable ); WritableObjects.prototype._write = function( chunk, encoding, doneWriting ) { console.log('write', chunk, encoding); doneWriting(); }; module.exports = […]

摩卡testingnodejs mssql – 连接已closures

尝试使用Mocha为使用MsSql的NodeJS设置testing。 但每次我运行我的testing,我得到一个“连接已closures”。 奇怪的是,当我自己运行应用程序时,它确实工作,然后,我从数据库中获取数据,并且连接没有太快closures。 我的testing代码: var express = require('express'); var expect = require('chai').expect; var calendar = require('./../Server/calendarDatabase'); describe("Calendar", function () { describe("Database", function () { it("should get stuff from the database", function (done) { calendar.getAll().then(function (returnValue) { console.dir(returnValue); expect(returnValue.count).to.equal(5); done(); }); }); }); }); 我的日历数据库代码看起来像 var express = require('express'); var sql = require('mssql'); var config = […]

运行node-mssql查询时出错

我想运行node-mssql查询,如果我运行简单quires它正在执行。 但是当我使用OPENROWSET和Microsoft.ACE.OLEDB.12.0 ,它显示出一些错误。 这里是server.js代码 var express = require('express'); var app = express(); app.get('/', function (req, res) { var sql = require("mssql"); // config for your database var config = { user: '..', password: '….', server: 'localhost\\SQLEXPRESS', database: 'test_databasae' }; // connect to your database sql.connect(config, function (err) { if (err) console.log(err); else console.log("Connection successful"); // […]

如何避免数据重复插入?

最近我发布了一个问题 ,它包含一些语法错误,现在代码运行没有错误,感谢@Arulkumar。 但现在我面临一个更多的问题,从Excel表中的数据正确地存储到SQL Server数据库,但是当我按刷新button,或者如果我再次在我的应用程序中的该链接,数据在数据库中重复。 又意味着它从excel中检索值并在数据库中再次存储相同的数据。 我怎样才能避免数据重复。 任何人都可以帮我解决这个问题吗? 代码和excel表单示例在上面提到的链接中。

如何将node.jsdate转换为SQL Server兼容的date时间?

我有一个Web API使用快速和繁琐的一些数据存储在Azure SQL数据库。 使用nvarchartypes和inttypes它工作得很好,但是当我尝试保存DateTime值时,我收到一条错误消息: Insert into Proxy (Ip, RequisitionDate) values ('1', '2016-05-18 3:32:21' ) 错误: RequestError:参数'RequisitionDate'的validation失败。 date无效。] message:'validation失败,参数'RequisitionDate \'。 date无效。',code:'EPARAM'} 那么有趣的是 Insert into Proxy (Ip, RequisitionDate) values ('1', '2016-05-18 3:32:21') 是我在node.js api中执行的查询: var query = "Insert into Proxy (Ip,RequisitionDate) values ( '"+ ip + "', '"+ date + "' )"; console.log(query); // Insert into Proxy […]

单调乏味的SQL Server TVP:parameter.value.getTime不是datetime的函数

我正在尝试使用TVP,并且在使用DateTime参数时不断收到此错误。 构build请求时的exception是: days = Math.floor((parameter.value.getTime() – UTC_EPOCH_DATE.getTime()) / (1000 * 60 * 60 * 24)); ^ 例外: TypeError:parameter.value.getTime不是一个函数 代码看起来像这样 /*declare table*/“ let table = { columns: [ { name: 'a', type: TYPES.VarChar, length: 50, nullable: true }, { name: 'b', type: TYPES.Int}, { name: 'c', type: TYPES.DateTime} ], rows: [ ['hello tvp', 777,'05/08/07 12:35 PM'], […]

nodejs mssql并承诺混淆

我是非常新的承诺在JavaScript中,所以这个问题是帮助我弄清楚为什么我得到一个错误(以奇怪的顺序)使用承诺。 最重要的是,我正在忙于使用ms-sql回购,sinonjs和第一次restify,所以也没有帮助 这个问题和我之前问过的有关 在上面的问题中,我需要在@robertklep的帮助下完成我成功完成的SQL DB。 然而,作为一个完整的检查,我想检查终点是否仍然像以前那样返回我期望的数据,所以我解开了残局。 现在我收到以下错误,我不知道为什么: [错误:发送后无法设置标题。] testing: 'use strict'; var expect = require('chai').expect, request = require('supertest'), chance = require('chance').Chance(), server = require('../server'), sinon = require('sinon'), select = require('../../helpers/data_access/select'), read_file = require('../../helpers/read_file'); describe("/account_types", function () { // before(function (done) { // sinon // .stub(select, "query_list") // .returns([{id: "test"}]); // // sinon // .stub(select, "query_single") […]

从节点中的SQL Servervalidation证书

我有一个客户的SQL Server数据库我需要连接到。 该SQL Server计算机的FQDN是db.client.local ,并且已经设置了自签名证书/启用encryption。 如果我连接到这台主机(添加一个条目到我的主机文件中的远程IP)使用Navicatencryption标记为启用,它拒绝连接为不可信,由于CA不信任,这是我所期望的。 在使用node-mssql和tedious node-mssql ,我能够连接和查询服务器,但是没有validation似乎发生。 我如何获得node-mssql来validation证书? 在这种情况下,我需要能够提供一个自定义的CA证书。 这是我的代码到目前为止 var sql = require( 'mssql' ), evilDns = require( 'evil-dns' ); // Set up the mapping so that I can access via their local dns evilDns.add( 'db.client.local' , '1.2.3.4' ); // Works without erroring new sql.connect({ user: 'user', password: 'password', server: 'db.client.local', database: […]