Javascript 处理Node.js和mssql模块中的空字段
尝试使用mssql模块从node.js调用sql server存储过程时,调用时会抛出错误EREQUEST,错误详细信息:RequestError:无法将值NULL插入列“colName”。不知道为什么,但在sql server上运行时,它会按预期工作并给出结果。我的存储过程包含临时表,并在某些列中插入空值。请参考以下代码Javascript 处理Node.js和mssql模块中的空字段,javascript,sql-server,node.js,stored-procedures,node-mssql,Javascript,Sql Server,Node.js,Stored Procedures,Node Mssql,尝试使用mssql模块从node.js调用sql server存储过程时,调用时会抛出错误EREQUEST,错误详细信息:RequestError:无法将值NULL插入列“colName”。不知道为什么,但在sql server上运行时,它会按预期工作并给出结果。我的存储过程包含临时表,并在某些列中插入空值。请参考以下代码 var request = new sql.Request(); request.input("param1", value1); request.i
var request = new sql.Request();
request.input("param1", value1);
request.input('param2', value2);
request.stream = true;
request.execute('Sp_Name', function (err, recordset) {
});
var rows = [];
request.on('row', function (row) {
rows.push(row);
console.dir(row);
});
request.on('error', function (err) {
console.log('IN error =>' + err.code + "=>" +err);
});
request.on('done', function (returnValue) {
console.log('IN Done');
});
感谢您的帮助。:每当我遇到SQL语句与客户端调用的SQL语句不一样时,这通常意味着在SSMS中模拟的内容与应用程序实际调用的内容之间存在一些差异。首先,我将跟踪colName在proc中的填充方式,然后按照您的方式向后操作,看看如何根据您的输入参数将放入该列的内容设置为null。但是,如果没有看到SQL代码,您的猜测和我的一样好。@Xedni,这样做没有任何意义,他说存储过程在服务器上运行良好,但不能通过NodeJS mssql工作,因此,很明显,问题与NodeJS mssql有关,而不是与存储过程有关。@VinayKharecha您认为这没有意义吗?出现的错误是SQL Server数据库错误,因此很明显,调用正在传递到数据库。如果他在SSMS中进行的调用有效,但来自节点的等效调用返回该错误,则是过程的参数以及传递到过程中的内容有问题。这让我回到了我在11号发布的内容。要么找出一种方法来准确地调试传递到SQL中的内容,要么从另一端开始工作,并确定过程中的哪些参数可能导致此类错误。@Xedni我在bothi.e SSMS和node.js中传递相同的参数,还从node.js中调试传递的内容,因为传递的是相同的参数。