Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Вниз

транзакции IB6   Найти похожие ветки 

 
cf   (2002-11-21 15:52) [0]

Всем привет!
У меня следующая проблема. Пишу приложение, работающее с IB6 через BDE. Выполняю 1-ый SQL запрос, в виде транзакции
Database1.StartTransaction;
- - - Выполняю запрос - - -
Database1.Commit;

После этого сразу же выполняю другой аналогичный SQL-запрос, так же в виде транзакции. Проблема в том, что если такие транзакции идут сразу же друг за другом, то приложение намертво подвисает, показав мне песочные часы SQL. В случае же, если я выдерживаю между транзакциями некую паузу, то все ОК. Перед началом второй транзакции свойство Database1.inTransaction = Falsе.
Подскажите, как мне правильно решить данную проблему.
Заранее благодарен.


 
Alexandr   (2002-11-21 15:58) [1]

в общем случае по твоему описанию такой проблемы нет.
Давай подробности.


 
Prooksius   (2002-11-21 16:02) [2]

Такого не должно быть.
Вообще-то желательно выполнять эти запросы в одной транзакции.


 
cf   (2002-11-21 16:18) [3]

Подробностей сейчас дать не могу, т.к. исходников под рукой нет.
Но даже, если бы они у меня сейчас были, то там все равно ничего нет особенного. Запросы корректные, по отдельности все работают на ура. Но друг за другом без задержки не хотят.

>Prooksius © (21.11.02 16:02)
>Вообще-то желательно выполнять эти запросы в одной транзакции.
Можно, конечно, но если это и решит проблему, то все равно непонятна причина её возникновения...


 
Victor_Cr   (2002-11-21 16:55) [4]

Возможно транзакция выполняеться отдельным потоком. У меня был такой глюк, и от него я избавился путем встаки между транзакциями Application.ProcessMessages


 
cf   (2002-11-21 17:44) [5]

>Victor_Cr ©
OK, попробую!


 
Alexandr   (2002-11-22 07:03) [6]

бред.
Как это отдельным потоком?
А ведь говорили, ничего особенного в исходниках нету...


 
Victor_Cr   (2002-11-22 10:49) [7]

2 Alexandr © (22.11.02 07:03)

По-моему, при отсылке сообщения на сервер о завершении транзакции, сам сервер обрабатывает некоторое время эти данные и должен отослать клиенту сообщение о ее корректном (или не очень) завершении. И при попытке тут же начать вторую транзакцию клиент может не успеть обработать сообщение сервера. Результат: глючит система. Но это лично мои догадки, т.к. в литературе об этом ничего на сказано (либо я плохо искал).


 
Prooksius   (2002-11-22 11:01) [8]

2 Victor_Cr © (22.11.02 10:49)
Нет. Клиент не сможет начать обрабатывать вторую тр-ю, если не закончил работать с первой (имеется в виду один thread).
Например, если твоя 1-я тр-я занимается интенсивной и длительной сборкой мусора, то ты не начнешь 2-ю.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
3-27814
4x4
2002-11-20 13:45
2002.12.09
DBLookupcombobox и поиск!


14-28242
MegaBass
2002-11-18 13:41
2002.12.09
HELP SQL


1-27988
snake1977
2002-11-25 12:54
2002.12.09
Точек на символ


1-27979
KoluChi
2002-11-25 13:42
2002.12.09
Преобразование HTML в текст


3-27885
Calm
2002-11-21 13:40
2002.12.09
Использование значения, возвращаемого процедурой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский