跳到主要内容
CNode

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

问答
Ttxxxj发布于 10 年前最后回复 10 年前
661170

用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)

M
mov1er#610 年前

围观下

X
xiami2046#510 年前

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

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

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

T
txxxj#310 年前
C
coolswitch#210 年前

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

S
slclub#110 年前

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

参与回复

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