powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / точки сохранения firedac
34 сообщений из 34, показаны все 2 страниц
точки сохранения firedac
    #39469526
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Кто нибудь знает есть ли в firedac что-нибудь на подобие локальных точек сохранения?
То есть к примеру есть код:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var
  savepoint, savepoint1,savepoint2: int64;
begin
  table.cachedupdates := true;
  savepoint := table.savepoint;  
  table.append;
  table[''] := ...;
  table.post;
  savepoint1 := table.savepoint;
  table.delete;
  savepoint2 := table.savepoint;
end



при этом savepoint1 равен savepoint2, и если я захочу вернутся к состояния после добавления строки то через savepoint's это реализовать не выйдет.
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469536
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно такое делается на стороне сервера и транзакциями.
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469554
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman, не совсем понял к чему ты об этом.

у меня есть table: TFDTable, у которого cachedupdates=true, и мне нужно в момент редактирования иметь возможность откатиться к тому или иному изменению, но не держа для этого собственный журнал изменений
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469560
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipovwadman, не совсем понял к чему ты об этом.

у меня есть table: TFDTable, у которого cachedupdates=true, и мне нужно в момент редактирования иметь возможность откатиться к тому или иному изменению, но не держа для этого собственный журнал изменений

Нет такого.
Но ты можешь воспользоваться сэйвпонитами, которые есть у некоторых серверов.

Например: http://www.ibase.ru/savepoints/

А также механизмом транзакций. :)
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469613
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чччД, дык изменения на сервер не отправляются ведь.
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469619
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipovчччД, дык изменения на сервер не отправляются ведь.

Ну так не используй кэширование. Пусть сервер пашет, он железный.
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469621
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чччД, нее так нельзя)) все реализовано на кешировании)
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469623
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RuslanSharipovчччД, нее так нельзя)) все реализовано на кешировании)
сам себе поставил ограничения, и теперь борешься.
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469625
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
фактически если добавить и удалить эту же запись в updates не будет записей для отправки на сервер,и соответственно сэйвпоинты бесполезны в этой ситуации, есть ли свойство отвечающее за то как хранить изменения до отправки на сервер, т.е. держать абсолютно всё а при отправке на сервер уже выбирать только нужное, тогда и логично что сэйвпоинт будет после каждого изменения всегда новый?
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469629
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RuslanSharipovфактически если добавить и удалить эту же запись в updates не будет записей для отправки на сервер,и соответственно сэйвпоинты бесполезны в этой ситуации, есть ли свойство отвечающее за то как хранить изменения до отправки на сервер, т.е. держать абсолютно всё а при отправке на сервер уже выбирать только нужное, тогда и логично что сэйвпоинт будет после каждого изменения всегда новый?

Использование транзакций, как уже сказали, cybvftn kbiy.. ujkjdye. ,jkm b gjcnhjtybt dtkjcbgtljd/
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469630
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RuslanSharipovфактически если добавить и удалить эту же запись в updates не будет записей для отправки на сервер,и соответственно сэйвпоинты бесполезны в этой ситуации, есть ли свойство отвечающее за то как хранить изменения до отправки на сервер, т.е. держать абсолютно всё а при отправке на сервер уже выбирать только нужное, тогда и логично что сэйвпоинт будет после каждого изменения всегда новый?

Использование транзакций, как уже сказали, снимает головную боль и сокращает велосипеды в коде.
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469634
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecatorRuslanSharipovфактически если добавить и удалить эту же запись в updates не будет записей для отправки на сервер,и соответственно сэйвпоинты бесполезны в этой ситуации, есть ли свойство отвечающее за то как хранить изменения до отправки на сервер, т.е. держать абсолютно всё а при отправке на сервер уже выбирать только нужное, тогда и логично что сэйвпоинт будет после каждого изменения всегда новый?

Использование транзакций, как уже сказали, снимает головную боль и сокращает велосипеды в коде.


я не могу понять как использование транзакции поможет в ситуации с "локальным" изменением?

если я правильно понимаю ты предлагаешь что то типа:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
table.cachedupdates := true;
table.append;
...
table.post;
table.connection.starttransaction;
table.delete;
table.rollback;

, но в этом случае запись все равно удалена
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469640
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RuslanSharipovdefecatorпропущено...


Использование транзакций, как уже сказали, снимает головную боль и сокращает велосипеды в коде.


я не могу понять как использование транзакции поможет в ситуации с "локальным" изменением?

если я правильно понимаю ты предлагаешь что то типа:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
table.cachedupdates := true;
table.append;
...
table.post;
table.connection.starttransaction;
table.delete;
table.rollback;


, но в этом случае запись все равно удалена

стартуешь транзакцию, и делаешь в её рамках что угодно.
А потом один раз коммитишь.
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469651
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator, походу мы друг друга не понимаем)))

я спрашиваю как мне вернуть набор данных с включенным кешированием, к определенному так сказать "снимку".
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469654
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipovк определенному так сказать "снимку".
Сделай этот снимок сам.
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469664
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
так это очевидно, хотелось не прибегать к этому, думал есть в firedac что то наподобие "локальных сэйвпоинтов" или "локальных транзакций"(что было бы логично и удобно, изменил что то в нд и во всех с ним связанных нд, передумал и вернул все нд к исходному состоянию), ан нет
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469677
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RuslanSharipovwadman,
так это очевидно, хотелось не прибегать к этому, думал есть в firedac что то наподобие "локальных сэйвпоинтов" или "локальных транзакций"(что было бы логично и удобно, изменил что то в нд и во всех с ним связанных нд, передумал и вернул все нд к исходному состоянию), ан нет

а зачем ? почему на сервере не менять сразу в рамках транзакции ?
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469685
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator, чтобы на сервер отправлять данные только когда пользователь действительно закончил работы со всеми наборами данных и нажал сохранить, если раньше отправить их на сервер потом придется удалять если нажмут отмена, а держать открытой транзакцию на весь период времени его работы с этими нд не есть гуд(он то не один такой).
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469689
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RuslanSharipovdefecator, чтобы на сервер отправлять данные только когда пользователь действительно закончил работы со всеми наборами данных и нажал сохранить, если раньше отправить их на сервер потом придется удалять если нажмут отмена, а держать открытой транзакцию на весь период времени его работы с этими нд не есть гуд(он то не один такой).

Дооооо, а если другой усер поменяет данные, а первый тоже поменяет,
данные перестанут быть согласованными (первый усер запись удалил, а второй - нет, первый записал свои изменения, а второй после него),
то как ты эту ситуацию обработаешь ?
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469692
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipovа держать открытой транзакцию на весь период времени его работы с этими нд не есть гуд(он то не один такой).
Сервер какой?
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469694
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator, в моем случае это блокировка доступа(как только один начинает изменять конкретную запись другие не могут ее изменить пока тот не закончит работу с ней), и нет никаких открытых долгое время транзакций а соответственно и блокировок страниц таблицы
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469696
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman, postgresql и mssql
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469698
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RuslanSharipovdefecator, в моем случае это блокировка доступа(как только один начинает изменять конкретную запись другие не могут ее изменить пока тот не закончит работу с ней), и нет никаких открытых долгое время транзакций а соответственно и блокировок страниц таблицы

с какой радости произойдёт блокировка, если и первый усер кешированные данные меняет, и второй усер тоже кешированные данные меняет ?
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469702
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator, доп таблица в которую пишутся имя таблицы и айдишник записи
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469703
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чёт мы не в ту степь пошли)
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469705
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipovdefecator, доп таблица в которую пишутся имя таблицы и айдишник записи
Ипонский городовой...
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469707
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
что?
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469708
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RuslanSharipovdefecator, доп таблица в которую пишутся имя таблицы и айдишник записи

Ога-ога, а когда программа внезапно вылетит, твой айдишник там и останется.

Не придумывай ерунды, делай на транзакциях с блокировкой.
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469711
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator, насколько я знаю о принципе работы транзакций, блокируется вся страница таблицы, так зачем мне запрещать доступ к другим данным
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469712
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RuslanSharipovdefecator, насколько я знаю о принципе работы транзакций, блокируется вся страница таблицы, так зачем мне запрещать доступ к другим данным
а теперь открой учебник по MS SQL и почитай несколько раз,
до просветления, про различные режимы транзакций.

Заодно подтянешь матчасть
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469713
RuslanSharipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator, ок
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469715
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipovчто?
Да кривое решение...
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39469872
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanSharipovчччД, нее так нельзя)) все реализовано на кешировании)

Ничего у тебя не реализовано, иначе откуда это: 20553354
...
Рейтинг: 0 / 0
точки сохранения firedac
    #39470022
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / точки сохранения firedac
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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