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

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

не отображаются значения по умолчанию [D5, Oracle, ]


victor ©   (2001-12-25 06:55:00) 

почему при переходе на новую запись не отображаются значения по умолчанию, пробовал через default в самом оракле 8.16, и через delphi DefaultExpression
использую odac 2.50 - может в нем какие то особенности, потому что через BDE с Парадоксом у меня все получалось


Mick   (2001-12-26 10:20:00) [1]

Хотя я знал людей, которые чат реализовывали на IB и его евентах


Mick   (2001-12-26 08:52:00) [2]

>Alexandr
"..на сервере этот default задается чтоб точно был и никуда случайно не делся так сказать для надежности."

Сто раз нет и еще один раз нет.
Например пользователь в приложении стирает значение, которое вы ему вытянули и на сервер улетает запрос, который вставит NULL в поле.
Или поле перечислено в запросе "Insert into ... при вставке записи в третьем приложении.
И при этом поле, имеющее атрибут, Dеfault очень даже "куда-нибудь денется".

Для этих целей всегда служили NOT NULL, CHECK и т.д. но только не Dafault.
Задача, которую решал автор вопроса решается модулем MyConstants.pas и обработчиками событий датасета.
Либо вообще не вставлять это поле с клиента.

PS Неленивый писатель это похвально. Но неленивый читатель - это полезнее.


Alexandr   (2001-12-25 13:48:00) [3]

это workAround
на сервере этот default задается чтоб точно был и никуда случайно не делся так сказать для надежности.
А на клиенте дублируется чтоб все красиво было.
В чем проблема?
Будет тормозить? Возможно... Но на глаз незаметно. Будет ниже надежность -нет.
Вломы писать?- а вообще программу не вломы писать?
а Default значения нужны для сохранения логики сервера, а не для того что бы клиент эти поля не перечислял


Yuvich   (2001-12-25 13:46:00) [4]

Взять дефолтовое значение можно так:
SELECT column_name, data_default FROM all_tab_columns WHERE owner = "..." and table_name = "..."

ODAC берет дефолтовое значение начиная с версии 3.хх


Mick   (2001-12-25 13:42:00) [5]

Следите за ходом мысли:
Зачем нужны Default значения полей? Для того чтобы КЛИЕНТ мог в Insert Into ... не перчислять эти поля и СЕРВЕР вставил бы сам эти дефолтные значения.
Теперь что хотите вы:
При вставке новой записи иметь db-Aware контрол связанный с полем имеющим дефолтное значение и чтобы в этом контроле было это самое дефолтное значение.
При этом BDE формирует запрос Insert Into ..., в котором в списке вставляемых полей есть это наше поле со значением, присвоенным в клиенте.

Возвращаемся в начало и спрашиваем себя: На кой леший мы делали поле c default значением, если пишем данные в него с клиента?


Alexandr   (2001-12-25 12:58:00) [6]

или как бы всталять default значения на клиенте в событии OnAfterInsert
вот откуда их брать? Можно конечно из базы вытащить каким-нибудь сложным запросом, а можно просто продублировать задание значения в программе


Mick   (2001-12-25 12:53:00) [7]

Не вставлять данные в гриде


victor   (2001-12-25 12:06:00) [8]

и как быть???


Mick   (2001-12-25 08:37:00) [9]

Потому что при "переходе на новую запись" в оракле еще нет дефолтного значения поля.


Наверх

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