C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
AutoCommit в Firebird
vfedorov
Отправлено: 07.10.2005, 08:50


Ученик-кочегар

Группа: Участник
Сообщений: 7



Работаю с FireBird и для связи с базой данных использую ibDatabase, ibTransaction, ibQuery, ibTable.
Для просмотра записей использую dataSource и DBGrid, связанных с ibTable

Если добовлять записи через ibQuery — данные становятся видны в DBGrid после вызова методы Commit компонента ibTransaction, при этом свойство Active компонента ibTable становится равно false, т.е. приходится переоткрывать ibTable заново. Это прибодит к торможению системы при больших объёмах данных.

Вопрос — как это всё сделать автоматически?
Заранее спасибо
Zoth
Отправлено: 07.10.2005, 10:58


Ученик-кочегар

Группа: Участник
Сообщений: 14



smile.gif)) Вам статьи на Ibase.ru следовало бы почитать... Эта задача не так проста как кажется... Если в рамках одного приложения то придется делать рефрешь, а если вы хотите чтобы в сети на других компутерах автоматом обновлялось — тогда вам на ibase.ru

А вообще, я например никогда вообще не использую компоненты Table/ Все делаю через квери, т.к. если таблица будет очень большой то и рефрешится она долго, а в запросе надо старатся как можно сильнее минимизировать колво данных передаваемых на клиент.
olegenty
Отправлено: 09.10.2005, 11:48


Ветеран

Группа: Модератор
Сообщений: 2412



однозначно — только Query. и IBX — не лучший для этого выбор. Надо пользоваться
FIBPlus
UIB
DBX
возможна также связака FIBPlus + TpFIBDataDriverEh, либо DBX + TDBXDataDriverEh. либо, написать свой TUIBDataDriverEh на основе UIB. Если не требуется работа с событиями/сервисами, то достаточно DBX-драйвера на основе UIB (входит в поставку UIB). при этом сами компоненты UIB устанавливать не нужно. при компиляции DBX-драйвера, либо UIB-компонентов, стоит обратить внимание на *.inc файл, отвечающий за выбор СУБД, с которой предполагается работа.

Вернуться в Работа с базами данных в C++Builder