RequestError: Соединение потеряно - прочитайте ECONNRESET для mssql в nodejs - PullRequest
2 голосов
/ 21 июня 2019

Я использую ссылку node-mssql: https://www.npmjs.com/package/mssql

, когда я вставляю объемные данные в таблицу mssql, он потерял соединение

, пока я вставляю данные выше 4 строк одновременновыдаст ошибку, но не выдаст ошибку ниже 4 строк, но они могут сохранить в таблице mssql

import * as sql from "mssql";

const conn = new sql.ConnectionPool({
   user: "XXXXXXXXX",
   password: "XXXXXXXXXXX",
   server: "XXXXXXXXXXX",
   database: "TESTDATA",
   options: {
    instanceName: "XXX"
   },
   pool: {
     max: 10,
     min: 0,
     idleTimeoutMillis: 30000
   }
 });

conn.connect()

var values = [[john,1,4,80],[jenny,null,4,78],[abhi,3,4,null],[ram,4,4,90]]

const table = new sql.Table('CLASS_TABLE');
table.columns.add('NAME', sql.NVarChar(15));
table.columns.add('ROLL', sql.Int);
table.columns.add('CLASS', sql.Int);
table.columns.add('MARKS', sql.Int);

for (let i = 0; i < values.length; i++) {
      let row_data = values[i];
      if (row_data) {
        table.rows.add(row_data[0], row_data[1], row_data[2], row_data[3], row_data[4])
      }
    }

const request = new sql.Request(conn);
request.bulk(table, (err, result) => {
  throw err
});

Ошибка: RequestError: Соединение потеряно - читать ECONNRESET

Ответы [ 2 ]

1 голос
/ 21 июня 2019

В настройках подключения укажите stream: true для вставки нескольких записей.

const conn = new sql.ConnectionPool({
   user: "XXXXXXXXX",
   password: "XXXXXXXXXXX",
   server: "XXXXXXXXXXX",
   database: "TESTDATA",
   options: {
    instanceName: "XXX"
   },
   stream:true,
   pool: {
     max: 10,
     min: 0,
     idleTimeoutMillis: 30000
   }
 });
0 голосов
/ 21 июня 2019

Я думаю, что есть параметр, который определяет максимально допустимые данные за раз

Я не знаком с mssql, но в MySQL, когда мы хотим вставить большие данные сразу, мы изменим параметр max_allowed_packet набольшое значение

, поэтому проверьте, есть ли подобный параметр, и измените его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...