Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Ошибка 57014 или "Отключено пользователем"


Автор: Ymnuk 24.1.2011, 21:27
Доброго времени суток.
Суть проблемы следующая:
Есть территориальные БД. Они каждый определенный период сливаются на центральный сервер. В принципе оттуда нормально получаются данные и добавляются в основную.
Прежде чем обновить данные они загружаются в БД с поменткой как временные, а остальные не трогаются. Когда все данные временно прогрузятся программа пытается выполнить запрос примерно такой:
Код

select vrem from table1 fetch first 3 rows only; Если >0, то выполняем следующую строчку, иначе переходим к 3-й
delete from table1 where vrem=0;
update table1 set vrem=1 where vrem=0;

В какой-то момент валится ошибка в программе "SQLSTATE=57014" либо "операция отменена пользователем".
Программа написана на Delphi 7 с использованием ADO. Компоненты только ADOConnection и ADOQuery.
Пробовал увеличить TimeOut транзакции в самом компоненте, TimeOutConnection. Не могу разобраться в чем проблема. Инсерты отрабатывают нормально. Соответственно перед массовой прогрузкой убиваются все индекс.
Тестил с пустой базой на 8.2 - все гуд, на 9-ке же отказывается.
Немогу никак побороть его. Может компонент другой?
Help please.

P. S. Через BDE работает нормально, но пора бы от него отказаться.

Автор: Ymnuk 25.1.2011, 19:55
Решение проблемы оказалось очень простым.
Помимо установки TimeOut в компоненте TADOConnection этот же параметр надо было увеличить и в TADOQuery. В дефолтные 30 секунд запрос тупо не укладывался... smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)