powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Локальный буфер в FIBPlus
12 сообщений из 12, страница 1 из 1
Локальный буфер в FIBPlus
    #32519781
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загружаю из файла локальный буфер. Далее при изменении данных не срабатывают триггера. Как мне перевести данные из статуса локальных в статус обычных (чтоб они виделись в контексте этой же транзакции)?
Метод ApplyUpdToBase не помогают. Может есть какой нибудь способ?
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32519886
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загружаю из файла локальный буфер. Далее при изменении данных не срабатывают триггера.

Варианты:
1 Ну, буфер - то локальный. Типа, загрузил ты данные в локальный массив, начал менять данные, и хочешь, чтобы на сервере триггеры срабатывали? Бывает. И как они (триггеры) запустятся? Ну, даже если каким-то чудом и запустятся, то ты в своем локальном буфере как об этом узнаешь?

Триггеры срабатываю только когда ты выполняешь соотв. действие в самой базе, а не локально.


2. По поводу ApplyUpdates. Проверь состояние триггеров на "Active"
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32519963
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1 Ну, буфер - то локальный. Типа, загрузил ты данные в локальный массив, начал менять данные, и хочешь, чтобы на сервере триггеры срабатывали? Бывает. И как они (триггеры) запустятся? Ну, даже если каким-то чудом и запустятся, то ты в своем локальном буфере как об этом узнаешь?

Вопрос состоял в том почему не обновляются триггера а в том как перевести записи из статуса локальных в статус при котором их видели бы все запросы в текущей транзакции.

авторПо поводу ApplyUpdates. Проверь состояние триггеров на "Active"

не ApplyUpdates а ApplyUpdToBase
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32520067
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, о какой вообще (а тем более - "текущей") транзакции идет речь в локальном буфере?
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32520146
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация такая: в текущем DataSet находится половина локальных записей и половина "нормальных", которые видятся другими запросами. Как сделать локальные записи "нормальными", т.е. запостить их в базу может что-то типа

DataSet.First;
while (not DataSet.Eof) do
begin
if (DataSet.UpdateStatus = usUnmodified) then//Не помню точно как наз. эта пропертя
begin
DataSet.CloneCurRecord;//Вставляем новую запись
//Далее как-то удаляем локальную
end;
DataSet.Next;
//При этом учесть что позиция курсора может менятся в зависимоти от удаления
end;
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32520185
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataSet.CloneCurRecord;//Вставляем новую запись

??
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32520268
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторDataSet.CloneCurRecord;//Вставляем новую запись
это ф-я такая в FIBPlus которая "Inserts a copy of a current record into data."
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32520279
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушай, брат, может, ты скажешь, что хочешь (в предметном плане), а мы тут тебе расскажем, как это делается?

А то, похоже, ты болты молотком загнать пытаешься...
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32520296
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подобное я уже отослал на devrace.com, там идет обсуждение

В общем суть такова: в гриде формируются позиции чека, при этом
автоматический пересчитывантся общая сумма чека. Далее при обрыве
соединения я сохраняю DataSet в Stream (SaveToStream). После этого
восстанавливаю соединение методом RestoreConnection(Self) и пытаюсь
восстановить уже набранный чек методом LoadFromStream. При таком
способе при добавлении или изменении позиции возникает ошибка либо
не срабатывают триггера (т.к. данные локальные). В общем мне нужно
перевести записи из состояния локальных в состояние которое будет
видно всем запросам в контексте текущей транзакции.
Подскажите как можно решить эту проблему.

Кстати я пытался создать копию DataSet, загрузить его локально а потом
уже восстанавливать нужный методом создания новых записей и
копирования данных. Но при загрузке из потока в копию DataSet у меня
возникаюли проблемы с полями которые имели тип Currency или Float,
получалось что сохранение шло в одном типе а загрузка в другом,
пришлось от этого отказаться :(

Используемые редства: Delphi5 FireBird1.5 FIBPlus5.3
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32520322
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, нельзя такое. Даже по логике: ты меняешь значения в локальном буфере, хочешь пересчитать значения в мастер - записи - так? Ну представь себе, что другие юзеры, не видя твоих деталь - записей, увидят, что мастер - запись изменилась. Класс?

Давай уж будь последователен - и мастер - запись тоже делай локальной (тогда вместо триггеров - локальные процедуры на события OnChange полей, нопример), а по завершению сеанса редактирования - апдейть все вместе.
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32520455
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортогда вместо триггеров - локальные процедуры на события OnChange полей, нопример
это неправильно, т.к. у каждых заказчиков может быть своя система пересчета, а триггера заменять легче чем весь экзешник.

авторНу, нельзя такое. Даже по логике: ты меняешь значения в локальном буфере, хочешь пересчитать значения в мастер - записи - так? Ну представь себе, что другие юзеры, не видя твоих деталь - записей, увидят, что мастер - запись изменилась. Класс?
А при чем тут другие юзера, они и так не должны видеть ничего.
...
Рейтинг: 0 / 0
Локальный буфер в FIBPlus
    #32520470
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, рубай дальше...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Локальный буфер в FIBPlus
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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