Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Commit / 10 сообщений из 10, страница 1 из 1
17.02.2004, 11:22
    #32411544
tors
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
Допусти м я ввел(удалил, отредактировал) в DBGrid запись.
Мне нужно, чтобы данные сразу попали в БД.
Вызываю в OnAftyerPost (IBQuery) IBTransaction->Commit();
Все бы хорошо, но приэтом закрывается IBQuery, а это уже не хорошо.
Посоветуйте что-нибудь.
...
Рейтинг: 0 / 0
17.02.2004, 11:23
    #32411550
Kull Damned
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
CommitRtaining спасет отца...
...
Рейтинг: 0 / 0
17.02.2004, 13:12
    #32411783
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
Или АШИЗдгы, часто называемые FIBPlus...
...
Рейтинг: 0 / 0
17.02.2004, 14:16
    #32411980
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
Все бы хорошо, но приэтом закрывается IBQuery, а это уже не хорошо.

Так было и так будет.

Так уж мир устрен.

Ретаининг, наверное, в твоем случае не стоит использовать - слишком большая нагрузка при большой выборке.

Юзай для записи одну транзакцию, а для просмотра другую. Естественно, после коммит первой - реопен (рефреш) второй.
...
Рейтинг: 0 / 0
17.02.2004, 14:25
    #32412004
Denis Uskov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
>mv
> Юзай для записи одну транзакцию, а для просмотра другую.

Это хороший совет!

> Естественно, после коммит первой - реопен (рефреш) второй.

А вот это уже похуже, потому как реопен перетянет кучу записей, может даже не изменившихся другими пользователями с момента предыдущего опена.
Нужно делать рефреш только одной(изменившейся) записи, это даже в IBX есть.
------------------------
С уважением, Denis Uskov
...
Рейтинг: 0 / 0
17.02.2004, 15:12
    #32412128
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
А вот это уже похуже, потому как реопен перетянет кучу записей, может даже не изменившихся другими пользователями с момента предыдущего опена.
Нужно делать рефреш только одной(изменившейся) записи, это даже в IBX есть.

В зависимости от ситуации.
...
Рейтинг: 0 / 0
18.02.2004, 06:41
    #32412810
sqliner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
2 Denis Uskov

>Нужно делать рефреш только одной ( изменившейся ) записи , это даже в IBX есть

Если не ломает, разжуй чуток, как это сделать?
...
Рейтинг: 0 / 0
18.02.2004, 07:46
    #32412835
Denis Uskov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
>mv
>В зависимости от ситуации.
Возможно, если в ту IBQuery выбирается чуть-чуть записей.

>sqliner
>Если не ломает, разжуй чуток, как это сделать?
Для IBQuery красиво не получится, но ...:
нужно привязать UpdateSQL и прописать RefreshSQL. В программе вызвать IBQuery1.Refresh, но для нормальной работы придется кешированные изменения использовать.
Для IBDataSet все намного проще. Прописываешь все SQL(select, insert, update, refresh) запросы и в программе IBDataSet1.Refresh.
Вот и все!
------------------------
С уважением, Denis Uskov
...
Рейтинг: 0 / 0
18.02.2004, 09:31
    #32412927
sqliner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
2 Denis Uskov
Въехал...
Где выборки на клиента большие, вероятно резон есть, но
на мой взгляд лучше делать выборки как можно меньше и апдейтить все
Close_Open-ом. Юзер все равно больше чем с 40-60 записями одновременно практически никогда не работает... ну рази шта очень суровый интеллект у него ;-)
Однако Спасибо.
...
Рейтинг: 0 / 0
20.02.2004, 08:22
    #32416302
Denis Uskov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Commit
>sqliner
Считаем:
40 записей против 1 и это умножить на размер записи, а если клиентов много.
На мой взгляд при редактировании/добавлении, точнее после, лучше сделать рефреш 1, а если юзер захотел обновить ВСЕ, так пусть кнопку нажмет и там уж CloseOpen.
В общем многое зависит от задачи. Если это справочник с 2-мя полями и записей мало, то конечно можно и все выбрать.
------------------------
С уважением, Denis Uskov
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Commit / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]