- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个项目,该项目要求我操作与时间报告应用程序相关的 SQL 表。我现在连接的简单代码如下:
var Connection = require('tedious').Connection;
var config = {
userName: 'my_user_name',
password: 'my_password',
server: 'server_to_access',
database: 'database_in_SQL_Server_Management_Studio'
};
var connection = new Connection(config);
connection.on('connect', function(err) {
console.log("Connected");
});
它显示已建立连接,但是当我运行以下命令时:
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config = {
userName: 'my_user_name',
password: 'my_password',
server: 'server_to_access',
database: 'database_in_SQL_Server_Management_Studio'
};
var connection = new Connection(config);
connection.on('connect', function(err) {
console.log("Connected");
executeStatement();
});
function executeStatement() {
request = new Request("SELECT * FROM Employees", function(err, rowCount) {
if (err) {
console.log(err);
} else {
console.log(rowCount + ' rows');
}
});
request.on('row', function(columns) {
columns.forEach(function(column) {
console.log(column.value);
});
});
connection.execSql(request);
}
这是我在 cmd 中的输出:
C:\Users\name\attempt>node test.js
Connected
{ [RequestError: Requests can only be made in the LoggedIn state, not the Connec
ting state]
message: 'Requests can only be made in the LoggedIn state, not the Connecting
state',
code: 'EINVALIDSTATE' }
C:\Users\name\attempt>
管理 SQL 表的应用程序是 MS SQL Server Management Studio 2008 R2。
任何关于我做错了什么的指示将不胜感激。谢谢!
最佳答案
您需要根据连接的可用性来管理请求队列和进程(繁琐的包装器可能会有所帮助,我已经有一段时间没有使用它了 https://github.com/mhingston/tedious-wrapper )。该伪代码是根据我自己的工作解决方案改编的(未经测试):
connection.on('connect', (err)=>{ RequestWrapper.next(err); });
const queue = [];
class RequestWrapper(){
constructor(sql){ this.sql = sql; }
static next(err){
const next = queue.shift();
if(next) next(err);
}
queue(args){
return new Promise((ok, fail)=>{
queue.push((err)=>{
if(err) fail(err); else ok(this.request(args));
})
})
}
request(args){
if(!connection) return Promise.reject(new Error(`connection required`));
if(!connection.loggedIn || connection.state.name !== 'LoggedIn') return this.queue(args);
return new Promise((ok, fail)=>{
try{
const request = new tedious.Request(this.sql, (err, count, rows)=>{
RequestWrapper.next();
if(err) return fail(err);
ok(rows);
});
...add params here...
connection.execSql(request);
}catch(err){
RequestWrapper.next();
fail(err);
}
});
}
};
关于javascript - 使用 tedious(Node.js) 执行 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38021130/
在 MSSQL 数据库上使用 Sequelize 一切顺利,直到我意识到它正在从数据库中提取小数并去除 0。 模型片段: rate1: { type: Sequelize.DECIMA
我已经开始学习 Node,并使用 Tedious 连接和查询数据库。 我编写了一个模块 db,它导出以下函数: exports.connect = function(callback) { c
我是 Node.js 的初学者,我目前正在构建一个 Node.js 程序,该程序使用“乏味”模块(参见下面的代码)访问和查询 Microsoft Azure SQL 数据库,并将数据放入 html网页
我有一组客户对象,我希望将其插入到 SQL 数据库中。从请求数据中检索客户对象。 我正在使用 Tedious 处理请求,并使用 Tedious Connectionpool 以便同时拥有多个连接。 当
这是我在这里的第一个问题,所以请原谅礼节上的任何异常。 我是 Node.js 和一般后端编程的新手。现在我正在使用 Node 和 Tedious 连接到本地 SQL 服务器。我想保持我的 main.j
node.js' debug 模块确实很整洁。我想知道是否有任何方法可以防止每个模块中这种繁琐且过于冗余的初始化: require('debug').enable('module-name:log m
我正在尝试用于连接 MSSQL 数据库的 Tedious 模块。 让我向您展示我的代码... var connection = new Connection(config); connection.o
当我运行使用 sequelize 库连接 MSSQL 数据库的 Node 应用程序时,出现此错误。 我已经尝试在本地和全局手动安装繁琐,但错误仍然存在。 完整的错误堆栈如下: Error: Ple
我正在尝试将 NodeJS 与 Tedious ( http://pekim.github.io/tedious/) sql server 插件一起使用来进行多个数据库调用。我的意图是:1.打开一个连
我目前正在开发一个项目,该项目要求我操作与时间报告应用程序相关的 SQL 表。我现在连接的简单代码如下: var Connection = require('tedious').Connection;
我有一个 SQL Azure 数据库,我正尝试从在 Azure Linux VM 中运行的 NodeJS 应用程序连接到该数据库。当我在本地 SQL 数据库/和 NodeJS 的本地计算机上时,一切正
我正在使用带有 Tedious 的 Sequelize 来访问 SQL Server 2008。 当我执行 sequelizeModel.findOne() 时,我得到了这个异常 - Unhandle
我有一个显示项目列表的 JSP 页面,每个项目都附有一个表单,允许用户编辑相应项目的数据。用户所做的更改由 servlet 处理。 现在,JSP 页面生成无效的 HTML,因为每个表单的每个输入都共享
使用存储过程时无法以 JSON 形式显示响应。 我正在使用express4-tedious 来获取结果。如果我使用选择查询,它工作得很好,但如果我将它与存储过程一起使用,我不知道如何在 JSON 中绑
这是我正在运行的基本代码块。我已按预期返回 RowCount(现在只有 5 个项目),但返回的行是一个空数组。 我做错了什么吗?顺便说一下,我正在连接到 SQL azure。我没有任何连接问题,我相信
我正在尝试使用 Tedious 连接到本地 SQL Express 服务器但不断得到 failed Error: getaddrinfo ENOTFOUND 我在这里使用的地址有误吗? var C
我的 SQL Server 数据库中有太多表,而我的应用程序使用了 sequelize node.js 的 ORM . 我发现有一种方法可以搭建我的数据库模型,它是 sequelize-auto 命令
我正在尝试连接到本地计算机上的 SQL Server。我正在尝试使用乏味和乏味的 ntlm。两者的配置如下: var tds = require("tedious-ntlm"); //var tds
所以我一直在我的 Windows 机器上本地开发 NodeJs 应用程序。我在 Azure 云中打开了一个简单的 SQL Server 实例。 以这种方式进行测试(本地主机上的 Node 、Azure
我得到下面的错误。我如何解决它? tedious deprecated The default value for `config.options.enableArithAbort` will cha
我是一名优秀的程序员,十分优秀!