Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обновление данных в програме. [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]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо