Что означает SQLcommandTimeout = -1? - PullRequest
       0

Что означает SQLcommandTimeout = -1?

0 голосов
/ 26 сентября 2018

Недавно я видел это значение установленным в некоторых проектах, я хотел бы знать, что именно оно означает, по умолчанию или максимально допустимый?

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Я бы предположил, что время не истекло или бесконечность, хотя рекомендуемый способ сделать это - установить значение 0, как показано здесь SqlCommand.CommandTimeout

Возможно, не знаяустановка значения в 0 сделает работу.

0 голосов
/ 26 сентября 2018

Вероятная причина использования -1 в том, что автор хотел команду без тайм-аута.Однако код должен быть изменен для установки времени ожидания равным нулю, что означает «нет времени ожидания» в соответствии с документацией :

Значение 0 указывает на отсутствие ограничения (попыткавыполнение команды будет ждать бесконечно).

В зависимости от реализации, установка отрицательного значения для CommandTimeout может вызвать исключение.Вот пример из Справочный источник Microsoft cod e:

override public int CommandTimeout { // V1.2.3300, XXXCommand V1.0.5000
    get {
        return _commandTimeout;
    }
    set {
        Bid.Trace("<sc.SqlCommand.set_CommandTimeout|API> %d#, %d\n", ObjectID, value);
        if (value < 0) {
            throw ADP.InvalidCommandTimeout(value);
        }
        if (value != _commandTimeout) {
            PropertyChanging();
            _commandTimeout = value;
        }
    }
}
0 голосов
/ 26 сентября 2018

Если для тайм-аута установлено значение меньше 1, для тайм-аута будет задано бесконечность: он будет ждать бесконечно до тех пор, пока команда не будет выполнена или не выполнена.

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