Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2009, 10:03   #1
KrPr
Пользователь
 
Регистрация: 27.01.2009
Сообщений: 18
По умолчанию Зависание клиента Firebird.

Добрый день!
Помогите с решением задачи. Пишу прогу для тестирования возникла следующая проблема: есть 2 таблицы 1 - вопросы, 2 - варианты ответа. Таблица вопросов содержит поля Тема, вопрос, прав. ответ. 2 - варианты ответов. Выбираю тему делаем фильтр по первой таблице с назв этой темы, далее выбираем случайно вопрос (ibQuery1recno:=random(n)), отбираем варианты ответа относящиеся к вопросу из 2 табл по фильтру, циклом пробегаю по вариантом ответа и загружаю в RadioGroup.
Когда клиент 1 работает нормально, если тест проходят одновременно 2 клиента то один из них зависает.
P/S Ранее до этого момента работал только с локальными базами. Если ошибка в самом алгоритме подскажите как логичнее.
KrPr вне форума Ответить с цитированием
Старый 27.01.2009, 12:00   #2
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Если один клиент работает нормально, то ошибка скорее всего в механизме доступа к серверу. Какие компоненты используете для доступа к серверу в своем приложении и какой FireBird используете?
У вас скорее всего с транзакциями что-то, вернее уровень изоляции транзакций неправильный, первый подключившийся, блокирует остальных...
Rik вне форума Ответить с цитированием
Старый 27.01.2009, 12:09   #3
KrPr
Пользователь
 
Регистрация: 27.01.2009
Сообщений: 18
По умолчанию

Как можно уточнить что не так с транзакциями? Компоненты TIBQuery, TIBTransaction, TIBDatabase- стандартные. FireBird - 2.1.1. В каком направлении копать?

Последний раз редактировалось KrPr; 27.01.2009 в 12:33.
KrPr вне форума Ответить с цитированием
Старый 27.01.2009, 16:59   #4
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Когда щелкаете на компонентах TIBTransaction два раза, появляется редактор, что у вас там прописано?
Попробуйте там выставить Read Commited. Или уберите там всё, Read Commited по моему по умолчанию должно быть

Последний раз редактировалось Rik; 27.01.2009 в 17:09.
Rik вне форума Ответить с цитированием
Старый 28.01.2009, 09:13   #5
KrPr
Пользователь
 
Регистрация: 27.01.2009
Сообщений: 18
По умолчанию

У компонента TIBTransaction, проставил: read_committed, rec_version, nowait. После чего проблема проявила в виде ошибки: после запуска 2-х клиентов и прохождения тестирования, пользователь доходит до окна с результатами в котором подтверждает результат. После подтверждения результата первым клиентом(проходит нормально). Второй выдает ошибку:Field 'TEST_ID' not found.
KrPr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сбросить зависание макроса valerij Microsoft Office Excel 3 26.12.2008 07:38
Зависание при наборе определенных слов mus-chek Microsoft Office Word 12 01.11.2008 08:20
Зависание приложения и скорость закачки russian-stalker Общие вопросы Delphi 4 09.09.2008 20:18
Зависание JRcoker Общие вопросы Delphi 8 06.08.2008 08:29
IP клиента JoanM Работа с сетью в Delphi 13 01.05.2008 16:30