Форум: "Базы";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
ВнизОшибки при работе с БД IB55 во время работы отладчика Delphi Найти похожие ветки
← →
jenya_d (2004-01-20 09:49) [0]Доброго времени суток профи!!!
Подскажите пожалуйста как можно решить проблему работы с БД IB55 во время отладки программы в Dеlphi7? Сама БД просматривается в IBExpert 2.0 и при просмотре не выдает только что добавленные данные, не показывает что данные удалены (после только что выполненного запроса на удаление) и зависает (то же самое и в SQL Explorer).
Конфигурация: P4 2.6C (HT выключен) ОЗУ-256Мб, ОС WinXP SP1 (eng) + MUI (восстановление файлов GDB выключено), IB 5.5, Delphi 7 Enterprise
Заранее благодарен.
← →
jenya_d (2004-01-20 10:11) [1]Неужели никто не сталкивался с иакой проблемой???
← →
Johnmen (2004-01-20 10:19) [2]Проблема не очень видна...
То, что не видно - так это транзакция не подтверждена/откачена.
А то, что зависает, так непонятно, про что речь...
← →
jenya_d (2004-01-20 11:51) [3]>Johnmen © (20.01.04 10:19)
>То, что не видно - так это транзакция не подтверждена/откачена
дело в том что транзакцию я подтверждаю а все равно не видно
>А то, что зависает, так непонятно, про что речь...
а зависает как только пытаюсь перечитать таблицу или просмотреть другую, при этом программа которую я отлаживаю в пошаговом режиме обращается к тойже БД что открыта в IBExpert и эта БД в момент просмотра открыта в программе. Раньше все прекрасно работало на Cel1000-256Мб-Win2000 Prof SP4 rus
← →
Johnmen (2004-01-20 11:56) [4]>jenya_d (20.01.04 11:51)
1. Где подтверждаешь ?
2. Так виснет что ? IBExpert или твоя программа ?
3. Если раньше работало, то, стандартно, надо "всмомнить всё" :), что было в промежутке между "раб." "не раб."
← →
jenya_d (2004-01-20 12:22) [5]>Johnmen © (20.01.04 11:56)
1.Подтверждаю в IBExpert кновкой "Подтвердить транзакцию" в панели инструментов SQL Editor
2.Виснет IBExpert (или SQL Explorer если использую его), а программа нормально отлаживается и работает
3.По поводу "вспомнить все": в промежутке была замена старого компа на новый с переустановкой всего: замена операционки с Win2000 на XP, замена проца с Cel1000 на P4-2.6С с многопоточностью, память с DIMM на DDR400
P.S. по началу все тормозило но работало, потом я нашел статейку на ibase по поводу тормозов в XP и все исправил - заработало. Но как только столкнулся с отладкой программы когда данные добавлялись/удалялись во время отладки программой, то тут началось непонятное поведение IBExpert и SQL Explorer
← →
Johnmen (2004-01-20 12:30) [6]>jenya_d (20.01.04 12:22)
1. Чтобы IBEx видел, что изменяется программой, надо в программе закрывать транзакцию.
2. После каких действий виснет IBEx ?
← →
jenya_d (2004-01-20 14:35) [7]>Johnmen © (20.01.04 12:30)
1.В программе транзакция закрывается в компоненте TIBTransaction методом CommitRetaining после этого все равно не выводиться добавленная запись
2.Виснет например в такой ситуации: если в IBEx открыта БД с котрой я работаю в программе и таблица (Table1) с которой я работаю в коде при отладке и во время отладки после открытия БД открыт запрос к этой таблице (Table1) - после переключения в IBEx и переходе на другую закладку в окне открытой таблицы (Table1) IBEx виснет! Но если прервать выполнение программы по Ctrl+F2 IBEx восстанавливает свою работоспособность.
← →
Johnmen (2004-01-20 14:42) [8]>jenya_d
Попробуй после зависания IBEx при отладке выполнить Commit.
Есть подозрение, что IBEx ждет завершения "несвоих" транзакций. Т.е. параметр его тр-ии WAIT.
← →
jenya_d (2004-01-20 15:12) [9]>Johnmen © (20.01.04 14:42)
Я проверил и после прохождения в коде CommitRetaining IBEx восстанавливает работоспособность, но запись добавленную запросом не видит. А если в IBEx переподсоединиться к БД то он показывает добавленные данные.
Похоже ты прав на счет:
>"Есть подозрение, что IBEx ждет завершения "несвоих" транзакций"
Но вот как заставить его показывать изменения после Commit без переподсоединения к БД? или вообще заставить не виснуть в ожидании Commit?
← →
Johnmen (2004-01-20 15:18) [10]>jenya_d (20.01.04 15:12)
1. Чтобы увидел, сделай коммит в IBEx.
2. Покопайся в настройках IBEx. Там это есть...
← →
Desdechado (2004-01-20 15:28) [11]а вот у меня есть подозрение, что соединение по локальному протоколу в обоих программах, а это чревато ...
← →
jenya_d (2004-01-20 15:38) [12]>Johnmen © (20.01.04 15:18)
1.Commit делал но ничего не видит
2.В настройка транзакций IBEx стоит Read Committed
>Desdechado © (20.01.04 15:28)
действительно по локальному протоколу, а чем чревато?
← →
Desdechado (2004-01-21 12:28) [13]вот именно описанным в начале поведением - повисанием, недопоказом и проч.
Это связано с тем, что при лок. подключении IB считает, что оно одно, и работает с буфером на диске. При более чем одном подключении в буфере будет каша, ибо он один на всех тогда
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c