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

Вниз

Зависание QRep   Найти похожие ветки 

 
Roma111   (2002-10-04 16:08) [0]

Есть сервер MS2000, сетка 10 мб, установленный на сервере IB6. Программа, написанная на D6 вызывает QRep.Preview. Перед этим я в несколько QLabel этого QRep "вручную" записываю данные: QLabel.caption="....". В локальном режиме все прокатывало нормально. В сетевом периодически на стадии записи в QLabel программа зависает причем с выдачей "дурацкого" сообщения "транзакция активна".

Кто чего подскажет, заранее благодарен...


 
Prooksius   (2002-10-04 16:20) [1]

Какими компонентами доступа к базе пользуешься?


 
Roma111   (2002-10-04 16:21) [2]

Прошу прощения,
IBX (IBDatabase, IDTransact, IBQuery)...


 
Prooksius   (2002-10-04 16:30) [3]

Сообщение "транзакция активна" значит, что где-то в коде открывается открытая транзакция.
У меня на FIBPlus был такой глюк. В FibDataset было поле Blob. Я его открываю, работаю с ним и вдруг кто-то выдергивает сетевой кабель из компа. :) Все ессно накрывается, но я обрабатываю эту ситуацию - закрываю приложение. Так вот при Destroy этого FIBDataset был глюк, когда база уже закрыта (not connected), а FIBBlobStream (смотрел дебаггером) какого-то хрена пытается запустить транзакцию.
У тебя там нет BLOB-ов?
Попробуй явно закрывать Dataset/Query после отчета.


 
AlexSam   (2002-10-04 16:41) [4]

IBQuery, который выводит данные в QRep (кстати одну запись) прикреплен к отдельной IBTransaction (в программе их несколько) и в блоке последовательно открываю и закрываю транзакцию

IBTransaction.StartTranscation;

...
...

IBTransaction.Commit;

Так что, открытых транзакций быть не может...




 
Roma111   (2002-10-07 09:17) [5]

Может быть, кто еще чего подскажет?


 
Johnmen   (2002-10-07 09:28) [6]

Давай подробности -
1. Как получаются данные для QLabel.caption
2. Зависает ли прога иногда или всегда ?
3. Если иногда, то чем этот прогон отличается от безотвального ?


 
Roma111   (2002-10-07 12:54) [7]

Johnmen, привет,

1. Данные для QLabel.caption я получаю из запроса IBQuery.FieldByName("...").AsFloat, после этого данные изменяются обрабатывающей функцией (в поле Numeric(9,2) хранятся деньги, а мне нужно выводить счет в нормальном виде с двумя нулями ми руб. на конце, есть функция, которая формирует строку адреса из полей улицы, дома, корпуса, .... , и т.д.). В зависимости от значений определенных полей мне необходимо делать невидимыми (видимыми) компоненты счета, ... После делаю Preview.

2. На локальном IBase 6.0 проблем никаких не было. При работе с сервером ошибки возникают апериодически, но часто. Я подозреваю, что это из-за скорости сети (10 Мб). Как бы контролировать QReport, считал он данные?

3. Я не понял этот пункт ...


 
Johnmen   (2002-10-07 13:33) [8]

Еще накачу немного вопросов -
1. Ты сам управляешь транзакциями ?
2. Ошибка валится до Preview ? после IBQuery.Open ? или где ?

И скорость сети в данном случае неважна...


 
AlexSam   (2002-10-07 13:40) [9]

1. Да, в функция на кнопке печати

IBTransaction.StartTransact;

IBQuery.Open;

QLabel1.Caption:=...
...
QLabelm.Caption:=...
....
--> Ошибка после очередного присваивания (в разных точках)....
....
QLabeln.Caption:=...

QReport.Preview;

IBQuery.close;

IBTransaction.Commit;

Может быть, мне убрать это присваивание (не знаю, использует его кто?). Какие другие методы использовать?


 
Roma111   (2002-10-07 13:40) [10]

1. Да, в функция на кнопке печати

IBTransaction.StartTransact;

IBQuery.Open;

QLabel1.Caption:=...
...
QLabelm.Caption:=...
....
--> Ошибка после очередного присваивания (в разных точках)....
....
QLabeln.Caption:=...

QReport.Preview;

IBQuery.close;

IBTransaction.Commit;

Может быть, мне убрать это присваивание (не знаю, использует его кто?). Какие другие методы использовать?


 
Prooksius   (2002-10-07 13:45) [11]

Есть такая штучка - QRDBText (не помню точно названия). Тот же лабел, только DB-aware. Попробуй ее.


 
Johnmen   (2002-10-07 13:59) [12]

>Prooksius © (07.10.02 13:45)

В данном случае это не подходит...(см.выше)

>Roma111

Перед IBTransaction.StartTransact; поставь
IBQuery.Close;
if IBTransaction1.InTransaction then IBTransaction1.Commit;

после IBQuery.Open; поставь
IBQuery.FetchAll;

PS Целесообразней один раз стартануть тр-ию и далее делать лишь
IBTransaction1.CommitRetaining и IBTransaction1.RollbackRetaining




 
Roma111   (2002-10-07 14:17) [13]

Johnmen
Спасибо, я попробую, но результаты будут только завтра. Сетка в другом месте.
А IBTransaction1.InTransaction идентична IBTransaction1.Active ?
Если так то при IBTransaction.StartTransact выдавалась бы ошибка, ее нет. IBQuery тоже закрыт.

IBQuery.FetchAll я не пробовал.
IBTransaction1.CommitRetaining и IBTransaction1.RollbackRetaining
тоже...

А вообще там просто много данных, ~100 полей, считываемых из вида, объединяющего несколько таблиц.


 
Johnmen   (2002-10-07 14:43) [14]

>А IBTransaction1.InTransaction идентична IBTransaction1.Active ?

Да. Что видно по хелпу :)))

И последний вопрос : Не осуществляется ли управление тр-ми на уровне БД ?


 
Roma111   (2002-10-07 15:11) [15]

Нет, управления транзакциями на уровне БД нет.
В этой программе я использую только запросы в IBQuery.

Мне посоветовали поменять IB 6 на Firebird. Как мнение?


 
Johnmen   (2002-10-07 15:21) [16]

Отзывы положительны...
Лично я могу сказать, что производительность выше на 15-20 % (лично тестировал).
При переходе не забудь backup под IB и restore под FB !


 
Roma111   (2002-10-07 15:28) [17]

Johnmen

Ситуацию все интереснее. Я протестировал работу программы с базой на другом серваке P3 800 под NT (был P4 2000 под W2000-Server Rus). Все работает нормально... Я все больше склоняюсь к обвинению W2000.

Что за проблема с Backup? Я бэкапирую программно при помощи IBX (IBBackupService).


 
Johnmen   (2002-10-07 15:39) [18]

>Что за проблема с Backup?

Проблем с Backup нет...:)
Проблемы могут появиться с БД, если не сделать backup под IB и restore под FB !


 
Roma111   (2002-10-07 15:42) [19]

То есть, если я перепишу свою базу просто файлом с IB6 на FB1, будут проблемы?


 
Johnmen   (2002-10-07 15:51) [20]

Что значит - перепишу ? :)
В смысле - буду использовать .gdb под FB"ом, хотя раньше под IB ?


 
Roma111   (2002-10-07 15:55) [21]

Ну да ...


 
Johnmen   (2002-10-07 16:04) [22]

Тогда повторюсь -
Проблемы могут появиться с БД, если не сделать backup под IB и restore под FB !

Т.е. могут возникнуть, а могут и нет....:-)))
Да и вообще, о чем говорим ? Ведь нетрудно один раз сделать b/r... :=)






 
Roma111   (2002-10-07 16:07) [23]

Спасибо, попробую ...


 
Roma111   (2002-10-08 10:48) [24]

Эврика!!!
Я заменил IB6 на Firebird 795 и все заработало ... Никаких ошибок. Единственно, я пока не заметил увеличения быстродействия, но специально не тестировал.


 
Johnmen   (2002-10-08 10:51) [25]

Еще говорят, что Yaffil побыстрее и побезглючней...
Не знаю, не проверял. :)


 
Prooksius   (2002-10-08 10:55) [26]

Да недавно вышел FB 1.5, правда alpha, подождем до бетты, а там поглядим, кто быстрее ;-)
Вроде бы там даже собираются вводить параметры к эвентам. Посмотрим... :)



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

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

Наверх





Память: 0.63 MB
Время: 0.048 c
3-92400
race1
2002-10-08 16:59
2002.10.28
ib


14-92671
Lola
2002-10-06 12:26
2002.10.28
Письмо-счастье


14-92719
SPeller
2002-10-07 18:33
2002.10.28
Кто смотрел передачу


1-92512
Стивенс
2002-10-18 14:57
2002.10.28
Установка


14-92691
zzet
2002-10-07 18:16
2002.10.28
Пора начинать праздновать?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский