powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сделать VIEW updatable?
9 сообщений из 9, страница 1 из 1
Как сделать VIEW updatable?
    #39251828
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FB 2.5 выдает вот такую вещь при попытке сделать update в представлении
Как можно побороть?
Как я понимаю WITH VIEW_METADATA в FB не работает?

Модератор: Вложение удалено.
...
Рейтинг: 0 / 0
Как сделать VIEW updatable?
    #39251834
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

rtfm: create trigger
...
Рейтинг: 0 / 0
Как сделать VIEW updatable?
    #39251860
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

VIEW можно сделать модифицируемым, навесив соответствующие триггера.

P.S. И про Alt+PrtSc еще забыли напомнить, если скопировать текст сообщения не под силу.
...
Рейтинг: 0 / 0
Как сделать VIEW updatable?
    #39252368
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нафлудили то ) В спешке пришлось делать скриншот.
Проблема теперь трансформировалась в такую:
Есть virtualstringtree на форме, которая вызывается с главной форме руками через пункт меню.
В нем - список приходных и расходных документов.
Столбцы берутся соответственно из view.
В одном столбце показываются итоговые суммы чека, в котором может быть несколько позиций.
Также ко всем позициям может применяться скидка.
Сумма скидки также хранится в view
Когда редактируешь чек (уже на другой форме) - убираешь или добавляешь позиции, то после сохранения чека (соответственно закрываем форму редактирования чека и возвращаемся в форму списка документов), идет расхождение на сумму скидки.
К примеру сумма чека 4000 без скидки, 400 руб. - скидка, итог = 3600. Убрали одно наименование на 100 рублей и скидкой 10 рублей. Должно получиться 3600 - 90 = 3510, но получается 3500, как будто он не учитывается, что скидка тоже уменьшилась и теперь она не 400, а 390 рублей.
Думал дело во view - не успевает обновиться или что то типа этого. Нифига подобного - в самой БД все правильно.
Причем что общая сумма, что сумма скидки (которая потом вычитается из общей суммы) берутся из одного view в одном запросе
дальше начинается мистика. Если закрыть форму списка доков и снова открыть ее руками через меню на главной форме, то все становится нормально и отображается правильная сумма.
Если то же самое делать программно - то есть закрыть из формы редактирования чека форму списка документов и потом опять же программно ее вызвать, снова показывается неверная сумма - без учета поправки на скидку.
Как будто у virtualstringtree есть какой-то свой буфер, который не очищается с первого раза.
Хотя непонятно почему такой косяк только со скидкой. Стоимость то удаленного или добавленного наименования вычитается (прибавляется) к общей сумме верно.
И почему те же самые действия (закрытие и открытие форму) руками и программно приводят к разным результатам
...
Рейтинг: 0 / 0
Как сделать VIEW updatable?
    #39252372
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой-то поток сознания.

Во-первых, откройте для себя рефреш.
Во-вторых, приводите код, если хотите,
чтобы указали на ошибку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать VIEW updatable?
    #39252373
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010Как будто у virtualstringtree есть какой-то свой буфер, который не очищается с первого раза.
господи... чего бы не выучить раз и навсегда - после выполнения запроса записи считываются в буфер приложения и больше никак не меняются до перечитывания этого самого запроса. Причем, видимость данных также зависит от параметров транзакции (уровня изолированности), в которой читаются эти самые данные.
Если этого не понимать, то начинается вот это самое - "так видно, а так не видно", и т.д.
арт2010Если закрыть форму списка доков и снова открыть ее руками через меню на главной форме, то все становится нормально и отображается правильная сумма.
ага.
VitrualStringTree КОНЕЧНО читает данные один раз. Как и IBDataSet, IBQuery, и так далее.
арт2010закрыть из формы редактирования чека форму списка документов и потом опять же программно ее вызвать, снова показывается неверная сумма
что там с транзакциями? Компоненты доступа к ФБ какие?
...
Рейтинг: 0 / 0
Как сделать VIEW updatable?
    #39252636
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 8 июня 2016 г. 11:46:36:

Kdv> VitrualStringTree КОНЕЧНО читает данные один раз.а он разве умеет работать с датасетами?
я им не пользуюсь, потому спрашиваю.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать VIEW updatable?
    #39252653
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийKdv> VitrualStringTree КОНЕЧНО читает данные один раз.а он разве умеет работать с датасетами?
я им не пользуюсь, потому спрашиваю.



AFAIK - как и любой другой TreeView - не умеет. Там все ручками.
...
Рейтинг: 0 / 0
Как сделать VIEW updatable?
    #39252668
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийHello, Kdv!
You wrote on 8 июня 2016 г. 11:46:36:

Kdv> VitrualStringTree КОНЕЧНО читает данные один раз.а он разве умеет работать с датасетами?
я им не пользуюсь, потому спрашиваю.


1. С датасетами VST не работает.
2. TVitrualStringTree "читает" данные всякий раз при отображении элементов. Ну, кроме одного дурацкого режима, про который я говорить не буду.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сделать VIEW updatable?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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