![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Зависание QRep [D6, IB6.x]
Roma111 © (2002-10-04 16:08:00)Есть сервер MS2000, сетка 10 мб, установленный на сервере IB6. Программа, написанная на D6 вызывает QRep.Preview. Перед этим я в несколько QLabel этого QRep "вручную" записываю данные: QLabel.caption="....". В локальном режиме все прокатывало нормально. В сетевом периодически на стадии записи в QLabel программа зависает причем с выдачей "дурацкого" сообщения "транзакция активна".
Кто чего подскажет, заранее благодарен...
Prooksius (2002-10-08 10:55:00) [1]Да недавно вышел FB 1.5, правда alpha, подождем до бетты, а там поглядим, кто быстрее ;-)
Вроде бы там даже собираются вводить параметры к эвентам. Посмотрим... :)
Johnmen (2002-10-08 10:51:00) [2]Еще говорят, что Yaffil побыстрее и побезглючней...
Не знаю, не проверял. :)
Roma111 (2002-10-08 10:48:00) [3]Эврика!!!
Я заменил IB6 на Firebird 795 и все заработало ... Никаких ошибок. Единственно, я пока не заметил увеличения быстродействия, но специально не тестировал.
Roma111 (2002-10-07 16:07:00) [4]Спасибо, попробую ...
Johnmen (2002-10-07 16:04:00) [5]Тогда повторюсь -
Проблемы могут появиться с БД, если не сделать backup под IB и restore под FB !
Т.е. могут возникнуть, а могут и нет....:-)))
Да и вообще, о чем говорим ? Ведь нетрудно один раз сделать b/r... :=)
Roma111 (2002-10-07 15:55:00) [6]Ну да ...
Johnmen (2002-10-07 15:51:00) [7]Что значит - перепишу ? :)
В смысле - буду использовать .gdb под FB"ом, хотя раньше под IB ?
Roma111 (2002-10-07 15:42:00) [8]То есть, если я перепишу свою базу просто файлом с IB6 на FB1, будут проблемы?
Johnmen (2002-10-07 15:39:00) [9]>Что за проблема с Backup?
Проблем с Backup нет...:)
Проблемы могут появиться с БД, если не сделать backup под IB и restore под FB !
Roma111 (2002-10-07 15:28:00) [10]Johnmen
Ситуацию все интереснее. Я протестировал работу программы с базой на другом серваке P3 800 под NT (был P4 2000 под W2000-Server Rus). Все работает нормально... Я все больше склоняюсь к обвинению W2000.
Что за проблема с Backup? Я бэкапирую программно при помощи IBX (IBBackupService).
Johnmen (2002-10-07 15:21:00) [11]Отзывы положительны...
Лично я могу сказать, что производительность выше на 15-20 % (лично тестировал).
При переходе не забудь backup под IB и restore под FB !
Roma111 (2002-10-07 15:11:00) [12]Нет, управления транзакциями на уровне БД нет.
В этой программе я использую только запросы в IBQuery.
Мне посоветовали поменять IB 6 на Firebird. Как мнение?
Johnmen (2002-10-07 14:43:00) [13]>А IBTransaction1.InTransaction идентична IBTransaction1.Active ?
Да. Что видно по хелпу :)))
И последний вопрос : Не осуществляется ли управление тр-ми на уровне БД ?
Roma111 (2002-10-07 14:17:00) [14]Johnmen
Спасибо, я попробую, но результаты будут только завтра. Сетка в другом месте.
А IBTransaction1.InTransaction идентична IBTransaction1.Active ?
Если так то при IBTransaction.StartTransact выдавалась бы ошибка, ее нет. IBQuery тоже закрыт.
IBQuery.FetchAll я не пробовал.
IBTransaction1.CommitRetaining и IBTransaction1.RollbackRetaining
тоже...
А вообще там просто много данных, ~100 полей, считываемых из вида, объединяющего несколько таблиц.
Johnmen (2002-10-07 13:59:00) [15]>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
Prooksius (2002-10-07 13:45:00) [16]Есть такая штучка - QRDBText (не помню точно названия). Тот же лабел, только DB-aware. Попробуй ее.
Roma111 (2002-10-07 13:40:00) [17]1. Да, в функция на кнопке печати
IBTransaction.StartTransact;
IBQuery.Open;
QLabel1.Caption:=...
...
QLabelm.Caption:=...
....
--> Ошибка после очередного присваивания (в разных точках)....
....
QLabeln.Caption:=...
QReport.Preview;
IBQuery.close;
IBTransaction.Commit;
Может быть, мне убрать это присваивание (не знаю, использует его кто?). Какие другие методы использовать?
AlexSam (2002-10-07 13:40:00) [18]1. Да, в функция на кнопке печати
IBTransaction.StartTransact;
IBQuery.Open;
QLabel1.Caption:=...
...
QLabelm.Caption:=...
....
--> Ошибка после очередного присваивания (в разных точках)....
....
QLabeln.Caption:=...
QReport.Preview;
IBQuery.close;
IBTransaction.Commit;
Может быть, мне убрать это присваивание (не знаю, использует его кто?). Какие другие методы использовать?
Johnmen (2002-10-07 13:33:00) [19]Еще накачу немного вопросов -
1. Ты сам управляешь транзакциями ?
2. Ошибка валится до Preview ? после IBQuery.Open ? или где ?
И скорость сети в данном случае неважна...
Roma111 (2002-10-07 12:54:00) [20]Johnmen, привет,
1. Данные для QLabel.caption я получаю из запроса IBQuery.FieldByName("...").AsFloat, после этого данные изменяются обрабатывающей функцией (в поле Numeric(9,2) хранятся деньги, а мне нужно выводить счет в нормальном виде с двумя нулями ми руб. на конце, есть функция, которая формирует строку адреса из полей улицы, дома, корпуса, .... , и т.д.). В зависимости от значений определенных полей мне необходимо делать невидимыми (видимыми) компоненты счета, ... После делаю Preview.
2. На локальном IBase 6.0 проблем никаких не было. При работе с сервером ошибки возникают апериодически, но часто. Я подозреваю, что это из-за скорости сети (10 Мб). Как бы контролировать QReport, считал он данные?
3. Я не понял этот пункт ...