продолжение хука afterConnect с ms sql (утомительно) - PullRequest
0 голосов
/ 28 мая 2020

При попытке ввести подготовленные операторы с помощью MS SQL (утомительно) - как только я пытаюсь выполнить запрос, я получаю следующую ошибку:

Database connection failed: Requests can only be made in the LoggedIn state, not the SentClientRequest state

Импорт:

import { Connection, Request } from 'tedious';

Хук:

public static async afterConnect(connection, options): Promise<void> {
    const client = connection['resource'] as Connection;

    let request = new Request('select 42',(err, rowCount, rows) => {
      console.log(`${err} ${rowCount} rows`);
    });

    client.execSql(request);
  }

Согласно утомительным, мне нужно связать запрос после предыдущего, sequelize, похоже, не передает эти данные, есть ли способ обойти эту проблему?

Я также создал проблему на Sequelize GitHub

1 Ответ

1 голос
/ 28 мая 2020

немного покопался в коде сиквелизации, но нашел решение - если у кого-то есть похожая проблема.

public static async afterConnect(connection, options): Promise<void> {
    const mssql = connection as { resource: Connection; previous: Promise<unknown> };

    await new Promise((resolve) => {
      let request = new Request('select 42', (err, rowCount) => {
        logger.debug(method, `${err} - ${rowCount} rows`);

        resolve();
      });

      await mssql.previous; // failsafe?
      mssql.resource.execSql(request);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...