Запрос на выборку из базы данных 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 секунд.