![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление данных в програме. [D6, IB6.x]
Alexsandr (GEG) © (2002-11-20 09:32:00)Как доброволно принудительно заставить программу обновить данные из базы.
Суть проблемы: две или более программы работают с одной базой.
ПРи оформление нового заказа выбираеться максимальное число (из номеров заказа). Но вслучае одновременой работе получаеться два заказа с одним номером.(через IBQuery идет запрос "select max("cod") from "szak").
Мы люди не местные но от совета не откажемся..
Sergey13 (2002-11-20 11:37:00) [1]2Alexsandr (GEG) (20.11.02 09:32)
>Наталия © (20.11.02 10:02)
>Так если есть генератор, то и бери его значение - искать максимальный номер запросом в корне неверный подход.
И да и нет одновременно. Тут просто не надо путать код и номер документа - это должны быть разные поля. Код может быть от балды любой, главное чтоб не повторялся и не менялся НИКОГДА. А вот номер (почти всегда) ДОЛЖЕН возрастать последовательно и без дыр. Тут выход, ИМХО, один - повесить уникальность на номер(может в купе еще с чем то, годом например) и при возникновении ексепшена при инсерте перечитывать max(nomer) и повторять.
Наталия (2002-11-20 10:02:00) [2]Так если есть генератор, то и бери его значение - искать максимальный номер запросом в корне неверный подход.
Alexsandr (GEG) (2002-11-20 10:00:00) [3]Ладно всем спасибо за активное участие.
Проблему решил спомощю IBTransaction2 к которому отдельно от всех подключил IBQuery.
Alexsandr (GEG) (2002-11-20 09:40:00) [4]Генератор есть .Но мне нужет именно последний номер заказа.
а этот гад насколко я понимаю при запросе проверяет по кешу.
В том то и состоит вопрос что нужно обновить его.
На сервере номер меняеться (при внисение заказа из другой програмы) а у меня в рабочей программе нет.
Евгений__ (2002-11-20 09:35:00) [5]Для таких вещей надо использовать генераторы. Создаете генератор, затем выбираете его значение из программы. Генераторы работают вне контекста транзакций.