|
|
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
Загружаю из файла локальный буфер. Далее при изменении данных не срабатывают триггера. Как мне перевести данные из статуса локальных в статус обычных (чтоб они виделись в контексте этой же транзакции)? Метод ApplyUpdToBase не помогают. Может есть какой нибудь способ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 10:29:52 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
Загружаю из файла локальный буфер. Далее при изменении данных не срабатывают триггера. Варианты: 1 Ну, буфер - то локальный. Типа, загрузил ты данные в локальный массив, начал менять данные, и хочешь, чтобы на сервере триггеры срабатывали? Бывает. И как они (триггеры) запустятся? Ну, даже если каким-то чудом и запустятся, то ты в своем локальном буфере как об этом узнаешь? Триггеры срабатываю только когда ты выполняешь соотв. действие в самой базе, а не локально. 2. По поводу ApplyUpdates. Проверь состояние триггеров на "Active" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 11:27:02 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
автор1 Ну, буфер - то локальный. Типа, загрузил ты данные в локальный массив, начал менять данные, и хочешь, чтобы на сервере триггеры срабатывали? Бывает. И как они (триггеры) запустятся? Ну, даже если каким-то чудом и запустятся, то ты в своем локальном буфере как об этом узнаешь? Вопрос состоял в том почему не обновляются триггера а в том как перевести записи из статуса локальных в статус при котором их видели бы все запросы в текущей транзакции. авторПо поводу ApplyUpdates. Проверь состояние триггеров на "Active" не ApplyUpdates а ApplyUpdToBase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 11:58:04 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
Ну, о какой вообще (а тем более - "текущей") транзакции идет речь в локальном буфере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 12:41:16 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
Ситуация такая: в текущем DataSet находится половина локальных записей и половина "нормальных", которые видятся другими запросами. Как сделать локальные записи "нормальными", т.е. запостить их в базу может что-то типа DataSet.First; while (not DataSet.Eof) do begin if (DataSet.UpdateStatus = usUnmodified) then//Не помню точно как наз. эта пропертя begin DataSet.CloneCurRecord;//Вставляем новую запись //Далее как-то удаляем локальную end; DataSet.Next; //При этом учесть что позиция курсора может менятся в зависимоти от удаления end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 13:09:35 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
DataSet.CloneCurRecord;//Вставляем новую запись ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 13:19:43 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
авторDataSet.CloneCurRecord;//Вставляем новую запись это ф-я такая в FIBPlus которая "Inserts a copy of a current record into data." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 13:39:23 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
Слушай, брат, может, ты скажешь, что хочешь (в предметном плане), а мы тут тебе расскажем, как это делается? А то, похоже, ты болты молотком загнать пытаешься... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 13:41:53 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
Подобное я уже отослал на devrace.com, там идет обсуждение В общем суть такова: в гриде формируются позиции чека, при этом автоматический пересчитывантся общая сумма чека. Далее при обрыве соединения я сохраняю DataSet в Stream (SaveToStream). После этого восстанавливаю соединение методом RestoreConnection(Self) и пытаюсь восстановить уже набранный чек методом LoadFromStream. При таком способе при добавлении или изменении позиции возникает ошибка либо не срабатывают триггера (т.к. данные локальные). В общем мне нужно перевести записи из состояния локальных в состояние которое будет видно всем запросам в контексте текущей транзакции. Подскажите как можно решить эту проблему. Кстати я пытался создать копию DataSet, загрузить его локально а потом уже восстанавливать нужный методом создания новых записей и копирования данных. Но при загрузке из потока в копию DataSet у меня возникаюли проблемы с полями которые имели тип Currency или Float, получалось что сохранение шло в одном типе а загрузка в другом, пришлось от этого отказаться :( Используемые редства: Delphi5 FireBird1.5 FIBPlus5.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 13:47:11 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
Ну, нельзя такое. Даже по логике: ты меняешь значения в локальном буфере, хочешь пересчитать значения в мастер - записи - так? Ну представь себе, что другие юзеры, не видя твоих деталь - записей, увидят, что мастер - запись изменилась. Класс? Давай уж будь последователен - и мастер - запись тоже делай локальной (тогда вместо триггеров - локальные процедуры на события OnChange полей, нопример), а по завершению сеанса редактирования - апдейть все вместе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 13:56:01 |
|
||
|
Локальный буфер в FIBPlus
|
|||
|---|---|---|---|
|
#18+
автортогда вместо триггеров - локальные процедуры на события OnChange полей, нопример это неправильно, т.к. у каждых заказчиков может быть своя система пересчета, а триггера заменять легче чем весь экзешник. авторНу, нельзя такое. Даже по логике: ты меняешь значения в локальном буфере, хочешь пересчитать значения в мастер - записи - так? Ну представь себе, что другие юзеры, не видя твоих деталь - записей, увидят, что мастер - запись изменилась. Класс? А при чем тут другие юзера, они и так не должны видеть ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 14:32:05 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32520279&tid=1578642]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
185ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 205ms |
| total: | 480ms |

| 0 / 0 |
