CNode

用nodejs 的mssql模块去执行存储过程,向数据库插入多条数据,这样就会多次去调用存储过程,可是那些数据有的还没插入数据库,连接就关闭了,咋办?

问答
Ttxxxj发布于10 年前最后回复9 年前6 回复6090 浏览0 收藏

用nodejs 的mssql模块去执行存储过程,每次会向数据库插入多条数据,这样就会多次调用存储过程,可是那些数据有的还没插入数据库,连接就关闭了,咋办?提示的错误:ConnectionError: Connection is closed.

var config={ user:'sa', password:'xxxxx', server:'xxxx', database:'xxxx', port:'xxxx', connectionTimeout:300000 }; 我的配置写这样,还需要添加什么吗? 加了个连接操时的时间,还是不行啊,以下是错误.. ConnectionError: Connection is closed. at d:\Program Files\nodejs\node_global\node_modules\mssql\lib\main.js:1663:17 at nextTickCallbackWith0Args (node.js:420:9) at process._tickCallback (node.js:349:13)

查看回复

回复 (6)

S
slclub#1·10 年前

直接执行的时间就很长吗?

C
coolswitch#2·10 年前

connection.connect(); connection.query('CALL 存储过程(1, @a, @b);', function(err, rows, fields) { // do something }); connection.end(); // 在最后 一般就这样调,你的存储过程在数据库工具里执行要多久?存储过程有返回值吗?

T
txxxj#3·10 年前
T
txxxj#4·10 年前
引用 coolswitchconnection.connect(); connection.query('CALL 存储过程(1, @a, @b);', function(err, rows, fields) { //...

@coolswitch 每调用一次存储过程所要花费的时间是3到6毫秒,存储过程有返回值...

X
xiami2046#5·9 年前

用async来同步插入吧,这样一条失败了,记录一下就不继续往下插入了,然后又重头再试一遍。 要么就弄一个数组列队,插入成功后,从列队里把执行成功的值删除掉,如果中断链接了,就用列队数组里未插入的数据重新开始。

M
mov1er#6·9 年前

围观下

参与回复
登录后即可参与回复。登录