4

我正在尝试使用序列化从节点服务器在我的 SQL 数据库上运行存储过程。但是我得到以下错误,我不知道为什么。我真的很感谢你的帮助。

错误:{ [RequestError:SqlContext 错误。步骤“GetData”失败:“超时:请求未能完成 i 15000 毫秒”] 名称:'RequestError',消息:'SqlContext 错误。步骤“GetData”失败:“超时请求未能在 15000 毫秒内完成”,代码:'ETIMEOUT',编号:'ETIMEOUT',lineNumber:未定义,状态:未定义,类:未定义,服务器名称:未定义,procName:未定义,previousErrors:[],步骤:'GetData'}

这是我的代码:

var sql = require( "seriate" );

var connection = {
    name: "example-1",
    user: "user",
    password: "pass",
    host: "host_ip",
    database: "Test"
};    

exports.getDataSql = function(req, res) {
    var results = {};

    sql.execute( connection, {
       procedure: "GetData",
        params: {
            Name: {
                type: sql.NVARCHAR(50),
                val: "user2"
            },
            LName: {
                type: sql.NVARCHAR(50),
                val: "user1"
            },
            finalName: {
                type: sql.NVARCHAR(50),
                val: "user3"
            }
        }
    }).then( function( results ) {
        console.log("getting data: ");
        res.json(results[0][0]);

    }, function( err ) {
        console.log( "Error", err );
        res.status(500).send({ error: 'Something failed!' });
    } );

};
4

3 回答 3

8

您可能需要按如下方式增加请求超时:

var connection = {
    name: "example-1",
    user: "user",
    password: "pass",
    host: "host_ip",
    database: "Test",
    requestTimeout: 300000
};    

还有一个 connectionTimeout 属性也可能会影响您。但是这个问题很可能是 requestTimeout

于 2016-05-04T18:08:25.070 回答
0

我使用这个库实现的 mssql。mssql 使用繁琐的方式连接远程数据库。在我的情况下,我在 Azure 函数中使用它并且没有调用

pool.close()

在每次执行结束时,它会耗尽连接然后开始超时。乏味的可能应该提供更好的错误描述。

于 2020-12-09T14:49:04.730 回答
0

在我的情况下,错误是由于未提交的事务。关闭 SQL Management Studio 会释放表,因为我从编辑器提交前一个事务时出错。

于 2020-02-15T00:39:02.947 回答