![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
зависание при вставке записи в базу [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]извиняюсь, пропустил, что приведенный код работает в цикле