Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

зависание при вставке записи в базу [D7, XP]


pavel_guzhanov ©   (2007-05-03 16:46:00) 

Интересную картину наблюдаю при работе программы. Вот это
   IBQRef.Close;
   IBQRef.Params[0].Value:=Filial_no;
   IBQRef.Params[1].Value:=IBDSFil.FieldByName('MEMB_ID').Value;
   IBQRef.Params[2].Value:=IBDSFil.FieldByName('FIO').AsString;
   IBQRef.Params[3].Value:=IBDSFil.FieldByName('CARD_SER').AsString;
   IBQRef.Params[4].Value:=IBDSFil.FieldByName('Card_no').Value;
   IBQRef.Params[5].Value:=IBDSFil.FieldByName('ACCN_NAME').AsString;
   IBQRef.Params[6].Value:=Passwrd;
   IBQRef.ExecSQL;
   IBDSFil.Next;

на строке IBQRef.ExecSQL;
программа иногда повисает надолго, но потом продолжает выполняться. Если я ставлю брекпоинт на любойстроке приведенного кода, то, после отвисания, курсор переходит на брекпоинт (т.к. цикл). После остановки на брекпоинте нажимаю F9, мгновенно пролетает цикл и возвращается опять на брекпоинт. Можно просто нажать F9 не отпуская и цикл бегает без остановки. Но стоит убрать брекпоинт, и нажать F9, так опять зависание. Ставлю брекпоинт снова, на любой строке. После отвисания стопроится (через заметное время, иногда несколько минут) на брекпоинте и по F9 снова работает без задержек. От чего такое может быть и как с этим бороться?


pavel_guzhanov   (2007-05-04 13:17:00) [1]


> у тя траффик антивиремне проверяется?

Не, не проверяется. у меня ноут и рабочий комп находятся в одной корпоративной сети, с одинаковым антивирем и с одинаковыми настройками антивиря....


Правильный Вася   (2007-05-04 12:04:00) [2]

у тя траффик антивиремне проверяется?
а то он злокозненный код в SQL искать может


pavel_guzhanov   (2007-05-04 11:18:00) [3]

переустановил... не помогло...


pavel_guzhanov   (2007-05-04 11:05:00) [4]

Вообще непонятно.. вернул все на ноутбук, все работает отлично.... мож мне на моем рабочем компе стоит переустановить FireBird?


pavel_guzhanov   (2007-05-04 10:10:00) [5]


> Посмотри View>Debud Windows>Call Stack

посмотрел. Там сообщение "Process is not accessible" Потом, видимо когда отвис процесс на сервере, появилось окно CPU, а сообщение пропало


ЮЮ   (2007-05-04 09:55:00) [6]

> Кнопки F7, F8, F9 неактивны....

Обычно активны. Значит "висит" исполнение на сервере. Посмотри View>Debud Windows>Call Stack, если  'Use Debug DCUs' уже включил


pavel_guzhanov   (2007-05-04 09:46:00) [7]


> Вот здесь и сделай паузу и посмотри где реально в коде идет
> выполнение


Нажал паузу... а как попасть в код? Кнопки F7, F8, F9 неактивны....


pavel_guzhanov   (2007-05-04 09:35:00) [8]


> В первоначальном варианте этот код стоял внутри if then
> end

Внутри IF THEN была проверка на повторные записи. Сейчас я эту проверку сделал в процедуре вставки, как мне и посоветовали. Что саме интересное, этот код я делал на ноутбуке, там все бегало на ура (база располагается локально на том же ноутбуке). А вот когда я перенес код на свой рабочий комп (теперь база располагается локально на этом компе) - начались вот такие тормоза.


> sweep_interval какой у БД стоит?
> Читать ibase.ru на его предмет.


Почитал про sweep_interval. в факах на ibase.ru. Попробовал сделать его равным 0, потом 100000. Картина не изменилась.


> Вот здесь и сделай паузу и посмотри где реально в коде идет
> выполнение


Щас попробую


ЮЮ   (2007-05-04 09:23:00) [9]

> После отвисания стопроится (через заметное время, иногда
> несколько минут) на брекпоинте и по F9 снова работает без
> задержек


В первоначальном варианте этот код стоял внутри if then end, так что по обрывку кода сказать нечего - может он просто в другом цикле бегает, потому и не останавливается.


> иногда несколько минут


Вот здесь и сделай паузу и посмотри где реально в коде идет выполнение. Для "захода" во внутренности VCL включи 'Use Debug DCUs'


pavel_guzhanov   (2007-05-04 09:11:00) [10]

Sweep_interval=20000


Desdechado   (2007-05-03 17:16:00) [11]

sweep_interval какой у БД стоит?
Читать ibase.ru на его предмет.


pavel_guzhanov   (2007-05-03 16:49:00) [12]

извиняюсь, пропустил, что приведенный код работает в цикле


Наверх

Титульная страница Поиск, карта сайта Написать письмо