-
Снова мидас. Кривоватая весч, но приходится воевать. Вопрос для тех кто реально работал. Просьба не флудить, про то как можно без этого обойтись, что все лохи и т.д. Ок? По существу. Перерыл весь инет, и! нашёл лишь такие же вопросы как и у меня, самое обидное, без ответов. Итак: есть два удаленных клиента. Один изменяет запись, другой в это время её удаляет. При обновлении базы, второй клиент должен получить сообщение, что запись удалена и принять решение - мидас так реализует... Банально? Ан нетс. Конечно, у нас есть событие на ошибку (OnReconcileError), где можно принять это самое решение, типа отмена, сброс и т.д., самое важное - raCorrect, т.е. возможность второму клиенту все же внести свою запись! Так вот КУКИШ! Как победить ? Спасибо за внимание.
-
> Как победить ?
что именно победить? невозможность второму клиенту внести свою запись? с доступом всё в порядке, тот что в dcomconfig настраивается? у мидаса с этим все жестко, чуть каких прав не хватает - не будет нормально работать
-
> [0] VikOss © (06.03.15 10:30) > второй клиент должен получить сообщение
Почему не первый?
-
> с доступом всё в порядке, тот что в dcomconfig настраивается?
Можно здесь поподробнее?
-
как варианты - CDS.FieldByName('ID').ProviderFlags := [pfInWhere, pfInKey]; - попробовать raMerge вместо raCorrect + ApplyUpdates
-
> попробовать raMerge вместо raCorrect + ApplyUpdates пробовал, не работает. >- CDS.FieldByName('ID').ProviderFlags := [pfInWhere, pfInKey];
для ключевых установил только pfInKey. Восстановить запись невозможно. Только вариант - кто последний - тот всегда прав...
-
последний всегда прав, и это не мидас, это общее, с "прямой" работой с sql сервером так же. и удаленная запись восстановлению не подлежит. если не хочешь реально удалять не удаляй, а ставь метки типа "удалено", как раньше для dbf-о подобных было.
-
> sniknik © (10.03.15 10:55) [6]
последний всегда прав, и это не мидас, это общее, с "прямой" работой с sql сервером так же. и удаленная запись восстановлению не подлежит. если не хочешь реально удалять не удаляй, а ставь метки типа "удалено", как раньше для dbf-о подобных было.
Это все понятно. Непонятно назначение обработчика ошибок в мидасе. Если произошла ситуация, описанная мною, провайдер держит у себя в памяти старые данные(или их отсутствие:-) и те что я пытаюсь внести - и спрашивает ЧТО ДЕЛАТЬ ? Я ему говорю - вноси МОИ данные ! Он пукает в лужу... Кто нибудь понимает для чего там эта нерабочая фича?
-
> Кто нибудь понимает для чего там эта нерабочая фича? для тех sql серверов/локальных движков которые это понимают...
> Он пукает в лужу... а мне кажется это ты... уверен что вся технология работает исключительно там как ты вот сейчас в данный момент сделал, и ни шагу в сторону.
-
хм, ланалана. Пока люди работают, и не ругаются :-), посмотрим что время скажет... Спасибо за внимание.
-
>для тех sql серверов/локальных движков которые это понимают...
ВОТ! И я об этом думать стал. Ведь во всех описаниях там SQLConnection пользуется, а у меня не совсем вроде - IBDatabase->IBDataset->DataSetProvider... МОЖ тут собака зарылась?
|