我正在运行循环并尝试在运行时插入数组中的多个值。
以下是代码:
function GetJobsToCourseID(index, jobData){
if((jobData != undefined)||(jobData != null)){
var extrArray = [];
for(var i = 0 ; i< jobData.length; i++){
extrArray = jobData[i];
for (var j=0; j<extrArray.length; j++)
{
console.log(extrArray[j]);
requestID = new Request("SELECT IDKey from dbo.Jobz where SubJobFamily ='"+extrArray[j]+"'", function(err, rowCount){
if (err) {
console.log(err);
}
else { connection111.reset(function(err){});
}
});
}
}
}
requestID.on('row', function(columns) {
for (var i = 0; i <columns.length; i++)
{
console.log(columns[i].value, "Please work");
if (columns[i].value == null || columns[i].value == undefined) {
console.log('NULL');
} else {
}
}
connection111.execSql(requestID);
});
}
正如你所看到的那样,我试图插入我的tempArray的j元素(我不认为它应该可行,因为Tedious连接的工作原理)
然后是什么方法 - 提取每个数组元素并使用Tedious使用SQL表填充它?
答案 0 :(得分:0)
通过添加连接池并将第二个循环var j
更改为let j ...
来修复它''乏味'真的很乏味......
这是代码:
function GetJobsToCourseID(index, jobData){
if((jobData != undefined)&&(jobData != null)){
var extrArray = [];
var newArray = [];
for(var i = 0 ; i< jobData.length; i++){
extrArray = jobData[i];}
for (let j=0; j<extrArray.length; j++){
pool.acquire(function (err, connection1111) {
if (err)
console.error(err);
requestID = new Request("SELECT IDkey from dbo.Jobz where SubJobFamily ='"+extrArray[j]+"'", function(err, rowCount){
if (err) {
console.log(err);
}
else {connection1111.reset(function(err){});}});
requestID.on('row', function(columns) {
for (var i = 0; i <columns.length; i++){
if (columns[i].value == null || columns[i].value == undefined) {
console.log('NULL');
} else {
arty.push(columns[i].value);
console.log(arty);
}}
});
connection1111.execSql(requestID);
});}
pool.on('error', function (err) {
console.error(err);
});
}}