node-mssql事件侦听器存在困难

时间:2019-01-07 22:02:32

标签: node-mssql

node-mssql使用违反其类型的主键约束的TVP参数执行存储过程时,我的节点应用程序崩溃。

events.js:183
  throw er; // Unhandled 'error' event
  ^

Error: [Microsoft][SQL Server Native Client 11.0][SQL Server]The data for 
the table-valued parameter 1 doesn't conform to the table type of the 
parameter. SQL Server error is: 3602, state: 30

我尝试了多种方式处理错误,包括添加事件侦听器。我怀疑我使用的方式不正确,但是还没有弄清楚确切的方式。

const sql = require('mssql/msnodesqlv8');

sql.on('error', err => {
    console.log(err);
})

const tvp = new sql.Table('EventsMultiplicativeType');

tvp.columns.add('MUID', sql.Int);
tvp.columns.add('DateID_Start', sql.Int);
tvp.columns.add('Value', sql.Float);
tvp.columns.add('Number_Consecutive_Observation', sql.Int);
tvp.columns.add('Detail', sql.VarChar(sql.MAX));
tvp.rows.add(8750, 20180101, 5, 5, 'Hello');
tvp.rows.add(8750, 20180101, 5, 5, 'Hello');

sql.connect(dbConfig).then(pool => {
    pool.on('error', err=> console.log(err));
    return pool.request()
        .on('error', err => console.log(err))
        .input('EventTable', tvp)
        .execute('sp_ValidateEventsMultiplicative')
        .then(result =>console.log(results))
        .catch(err => console.log(err))
}).catch(err => console.log(err));

sql.on('error', err => {
    console.log(err);
})

0 个答案:

没有答案