Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Зависание QRep [D6, IB6.x]


Страницы:   1 2

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. Я не понял этот пункт ...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо