Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

122
Vistas
Guarde una matriz de datos en el sql sever usando Tedious & Node

Tengo este problema en el que recibo una matriz de datos que necesito guardar en la base de datos. Tengo que recorrer la matriz y crear una fila en la tabla. Pero el problema es que el bucle está iterando al siguiente índice antes de que finalice la primera solicitud.

¿Cómo me acerco a esto?

código: A continuación se crea una conexión dentro de un bucle para que cada solicitud pueda tener una conexión

 for (let i = 0; i < newroomname.length; i++) {
 var addroomconnection = new Connection(config);
 addroomconnection.on('connect', function (err) {
 // If no error, then good to proceed.
 console.log("Connected");
 addNewRoom(addroomconnection, floorID, newroomname[i]);
 });
 addroomconnection.connect();
}

A continuación se muestra la función que maneja la solicitud:

 function addNewRoom(addroomconnection, floorID, newroomname) {
 return new Promise((resolve, reject) => {

 console.log("Writing rows into table room in function addNewRoom()...");

 let roomID = v4();
 // ? Write row into table
 console.log('inside loop');
 const request = new Request(
 `INSERT INTO [dbo].[room] (room_id, floor_id, room_name, time_created, time_modified)
 VALUES ('${roomID}', '${floorID}', '${newroomname}', GETDATE(), GETDATE());`,
 (err, rowCount) => {
 if (err) {
 console.error(err.message);
 reject(err);
 } else {
 console.log(`${rowCount} row(s) for rooms returned`);
 }
 }
 );

 request.on('requestCompleted', function (rowCount, more) {
 console.log('req completed');
 
 });
 addroomconnection.execSql(request);
 });
}

Error

 RequestError: Requests can only be made in the LoggedIn state, not the LoggedInSendingInitialSql state
 at Connection.makeRequest (C:\Users\NAA\Documents\express-test\node_modules\tedious\lib\connection.js:2208:24)
 at Connection.execSql (C:\Users\NAA\Documents\express-test\node_modules\tedious\lib\connection.js:1738:10)
 at C:\Users\NAA\Documents\express-test\server.js:477:27
 at new Promise (<anonymous>)
 at addNewRoom (C:\Users\NAA\Documents\express-test\server.js:429:12)
 at Connection.<anonymous> (C:\Users\NAA\Documents\express-test\server.js:413:21)
 at Connection.emit (node:events:390:28)
 at Connection.emit (C:\Users\NAA\Documents\express-test\node_modules\tedious\lib\connection.js:1048:18)
 at Connection.processedInitialSql (C:\Users\NAA\Documents\express-test\node_modules\tedious\lib\connection.js:1669:10)
 at C:\Users\NAA\Documents\express-test\node_modules\tedious\lib\connection.js:2723:14 {
 code: 'EINVALIDSTATE',
 number: undefined,
 state: undefined,
 class: undefined,
 serverName: undefined,
 procName: undefined,
 lineNumber: undefined
}
almost 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda