Как смоделировать ошибку тайм-аута ODBC? - PullRequest
3 голосов
/ 23 сентября 2010

Я тестирую обработку ошибок контролируемого Access-VBA процесса:

  1. Запускается скрипт в БД Access 'controller'.
  2. Скрипт запускает макрос во втором файле доступа («база данных»).
  3. Макрос в файле 'database' выполняет несколько запросов maketable.
  4. Эти запросы извлекаются из таблиц, связанных с источником ODBC (фактически, SQL-Server).

Когда этот процесс запускается в ранние утренние часы, иногда запросы задерживаются. Сегодня я обновил обработку ошибок в скрипте контроллера, поэтому хочу смоделировать ошибку тайм-аута.

Я посмотрел на администратора ODBC и дополнительные параметры в MS Access, но не могу найти то, что мне нужно. Идеи?

Ответы [ 4 ]

2 голосов
/ 23 сентября 2010

Откройте ваш макрос в режиме конструктора. В меню «Вид» выберите пункт «Свойства». Это должно быть свойство Timeout, установить для него короткое значение и проверить.

1 голос
/ 23 сентября 2010

re: иногда время ожидания запроса истекает.

Убедитесь, что свойство запроса для тайм-аута ODBC установлено на ноль, чтобы оно не генерировало ошибку, но продолжало работать.

0 голосов
/ 23 сентября 2010

Если ваши запросы являются модификациями, вы можете добавить триггер, который вызывает WAITFOR. Описано здесь.

0 голосов
/ 23 сентября 2010

В ваши SQL-запросы добавьте следующий оператор - это должно привести к тайм-ауту.

--waits for 5 mins
    WaitFor Delay '00:05'

Или, если вы не хотите вносить изменения в существующие запросы, вы можете выполнить это в одной из таблиц, которые макросзапросы.Это заблокирует стол на 3 минуты

begin transaction

Select *
From MyTable with (TABLOCKX)
--wait for 3 min
WaitFor Delay '00:03'

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