Запрос на выборку из базы данных Oracle не получает тайм-аут - подключен через ADODB взаимодействия

Я использую ADODB interop DLL Version:6.0.0.0 для подключения любого типа базы данных.

CommandTimeout составляет 3 секунды. Открытие набора записей с помощью командного объекта с таймаутом 3 секунды.

С базой данных Oracle с огромными данными, когда я ввожу запрос выбора, это не время ожидания.

Как тайм-аут выполнения запроса?

Я также пытался установить тайм-аут команды на 1 секунду, но время его ожидания не истекло.

Установите время ожидания соединения 3 секунды (я знаю, что это отличается от времени ожидания команды, но все еще пытался)

** В базе данных MSSQl, в хранимой процедуре, если я вставляю 10 недостающих записей и после этого у меня есть запрос на выборку, он фактически дает тайм-аут при выполнении процедуры, но если у меня есть только запрос на выборку в процедуре, он не истечет.

public DataTable ExecuteQuery(string commandText, int timeout = 3)
{
    if (connection.State.Equals(connected))
    {
        var command = createCommand(commandText, CommandTypeEnum.adCmdText, 3);                     

        var recordset = createRecordset();  recordset.Open(command);

        command = null;     return dataTable; 
    }
}

private Command createCommand(string commandText, CommandTypeEnum  commandType, int timeout = 3)
{
    var command = new ADODB.Command
    {
        ActiveConnection = connection,
        CommandText = commandText,
        CommandType = commandType,
        CommandTimeout = timeout
    };

    return command;
}

private Recordset createRecordset()
{
    return new Recordset
    {
        CursorType = CursorTypeEnum.adOpenStatic,
        CursorLocation = CursorLocationEnum.adUseClient,
        LockType = LockTypeEnum.adLockReadOnly,
    };
}

Я ожидаю ошибку тайм-аута, когда запрос выполняется более 3 секунд.

0 ответов

Другие вопросы по тегам