1

当 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);
})
4

0 回答 0