powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обновление IBDataSet в разнесенных по ПК клиентам
6 сообщений из 6, страница 1 из 1
Обновление IBDataSet в разнесенных по ПК клиентам
    #39631224
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток,

Все наверное знают, что для обновления данных в IBDataSet нужно просто его переоткрыть, т.е. сделать "Close" и "Open"

1. Но если приложение/клиент, раскидать по двум машинам.
Dataset1 (первая машина) редактирует запись - одно поле (при помощи DBNavigator). В событии DataSetAfterPost, стоит IBTransaction.CommitRetaining. После этого запись в самой БД обновяется.

Dataset2 (вторая машина) уже открыт и в событии "BeforeRefresh" делаю Close, и Open , т.е.

Код: pascal
1.
2.
3.
4.
5.
 ADataSet.Close;
    ADataSet.SelectSQL.Clear;
    ADataSet.SelectSQL.Add(ARequire);
    ADataSet.Open;
    ADataSet.FetchAll;



То такой способ (моя служебная запись) обновления, уже не работает, без переконнекта IBDataBase
Что я забыл?

2. Delphi10.2, передача запроса, в стринговую переменную ARequire, в дебаге вижу (в конце строки)
DelphiВыделить код
1
"'*select * from CONTRACT where ARCHIVE = 1*'#**$**D#$A"
- и эта хрень передается в DataSet.


Спасибо за ответ
...
Рейтинг: 0 / 0
Обновление IBDataSet в разнесенных по ПК клиентам
    #39631233
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008Все наверное знают, что для обновления данных в IBDataSet нужно просто его переоткрыть, т.е. сделать "Close" и "Open"Хрень. Для обновления Refresh предназначен.
Sergey-2008В событии DataSetAfterPost, стоит IBTransaction.CommitRetaining.Проще застрелиться, чем потом заставить работать эту систему.
Sergey-2008Что я забыл?Почитать (где угодно) про виды, уровни изоляции транзакций.
После этого - то же самое, но касательно конкретно Interbase/Firebird и IBX, коль он выбран для работы с этой СУБД.
А так же о методах работы с ними (транзакциями).
...
Рейтинг: 0 / 0
Обновление IBDataSet в разнесенных по ПК клиентам
    #39631245
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008,

пока глубоко не вляпался, переходи на FIB+. Их можно скачать здесь: https://github.com/madorin/fibplus

Почитать (см. ссылки): 21328186
...
Рейтинг: 0 / 0
Обновление IBDataSet в разнесенных по ПК клиентам
    #39631290
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockДля обновления Refresh предназначен.
Который обновляет текущую запись?
...
Рейтинг: 0 / 0
Обновление IBDataSet в разнесенных по ПК клиентам
    #39631396
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanYuRockДля обновления Refresh предназначен.
Который обновляет текущую запись?А, да :)
...
Рейтинг: 0 / 0
Обновление IBDataSet в разнесенных по ПК клиентам
    #39631406
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008То такой способ (моя служебная запись) обновления, уже не работает, без переконнекта IBDataBase
Что я забыл?

Про уровни изоляции транзакций уже посоветовали. От себя добавлю, что лучше разделять читающие и пишущие транзакции. И использовать Commit для пишущей транзакции вместо CommitRetaining для читающе-пишущей. Тут очень хорошо и подробно описана работа с транзакциями.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обновление IBDataSet в разнесенных по ПК клиентам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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