节点和SQL Server批量插入的ERR_OUT_OF_RANGE问题

问题描述 投票:0回答:1

[当我尝试使用批量插入时,出现rangeError:

[ERR_OUT_OF_RANGE]:“值”的值超出范围。它必须是> = -2147483648和<=2147483647。已收到3912066366。

我知道这是一个节点问题,但任何解决方法都将不胜感激

这里是我正在使用的数据集https://github.com/gerrymandr/vtd-adjacency-graphs/

插入代码:

async function insertBulkNode(json) {
  const newPool = await sql.connect(dbConfig)
  let count = json.length;

  const table = new sql.Table('[nodes_shapefile]');
  table.create = true;
  table.columns.add('stCode', sql.Bit, { nullable: true });
  table.columns.add('boundary_node', sql.Int, { nullable: true });
  table.columns.add('ALAND10', sql.Int, { nullable: true });
  table.columns.add('AWATER10', sql.Int, { nullable: true });
  table.columns.add('COUNTYFP10', sql.VarChar(100), { nullable: true });
  table.columns.add('CD', sql.VarChar(10), { nullable: true });
  table.columns.add('POP10', sql.Int, { nullable: true });
  table.columns.add('CD113', sql.VarChar(10), { nullable: true });
  table.columns.add('id', sql.VarChar(100), { nullable: true });

  for (i = 0; i < count; i++) {
      let count2 = json[i]['nodes'].length

      for(let j = 0; j < count2; j++) {
          table.rows.add(json[i]['graph'][0][1],  json[i]['nodes'][j]['boundary_node'],  json[i]['nodes'][j]['ALAND10'], json[i]['nodes'][j]['AWATER10'], json[i]['nodes'][j]['NAME10'], json[i]['nodes'][j]['COUNTYFP10'], json[i]['nodes'][j]['CD'], json[i]['nodes'][j]['POP10'], json[i]['nodes'][j]['CD113'], json[i]['nodes'][j]['id']);
      }
    }

    console.log('Pool Party');

    const request = await newPool.request();
    request.bulk(table, (err, result) => {
        if (err) {
            console.log("ERROR post bulk: " + err);
            newPool.close()
        }
        else {
            console.log("SUCCESS! " + result);
            newPool.close()
        }
    })
}

其余代码

const sql = require("mssql");
const fs = require('fs')

const dbConfig = {
  server: server,
  database: database,
  user: user,
  password: password,
  port: 1433,
  options: {
    encrypt: true
  }
};

const path = 'C:\/Users\/RobbieEdwardes\/Documents\/GitHub\/vtd-adjacency-graphs\/vtd-adjacency-graphs';
const fileNames = ['queen.json', 'rook.json'];

const fullSet = [];
const adjacencySet = [];

(async function(){
let dirList =  await fs.readdirSync(path);
let filePathList = await dirFileList(dirList);
let fileList = await getFilesList(filePathList, dirList);
let readFiles = await readEachFile(fileNames, filePathList)
let final = await insertBulkNode(readFiles)
})()


function dirFileList(data){
  const returnList = [];
  let dirCount = data.length;
  for(let i = 0; i < dirCount; i++){
    returnList.push(`${path}\/${data[i]}`);
  }
  return returnList
};

function getFilesList(list, stCode){
  const returnSet = []
  let listCount = list.length;
  for(let i = 0; i < listCount; i++){
    let dataSets = {
    [i] : fs.readdirSync(`${list[i]}`)
    }
    returnSet.push(dataSets)
  }
  return returnSet
}

function readEachFile(list, path){
  let pathCount = path.length;
  for(let i = 0; i < pathCount; i++){
    for(let j = 0; j < fileNames.length; j++){
      let fileRead = fs.readFileSync(`${path[i]}\/${list[j]}`)
      let jsonParse = JSON.parse(fileRead);
      fullSet.push(jsonParse);
    }
  }
  return fullSet;
}
node.js sql-server fs
1个回答
0
投票

很遗憾,要修复它,我已经将Node的安装版本更改为6.11.5

© www.soinside.com 2019 - 2024. All rights reserved.