Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];




Вниз

не отображаются значения по умолчанию 


victor   (2001-12-25 06:55) [0]

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



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

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



victor   (2001-12-25 12:06) [2]

и как быть???



Mick   (2001-12-25 12:53) [3]

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



Alexandr   (2001-12-25 12:58) [4]

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



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

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

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



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

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

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



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

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



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

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

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

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

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



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

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




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.052 c
1-99993           Сергей Н.             2002-01-12 15:58  2002.01.31  
Перекодировка


14-100071         модератор             2001-12-07 21:41  2002.01.31  
.


4-100125          VoV@nn                2001-11-30 17:00  2002.01.31  
Handle!


4-100108          Filat                 2001-12-03 16:42  2002.01.31  
Не перегружается комп. Мешает сообщение, что к компу подкл. несколько юзеров.


3-99905           victor                2001-12-28 08:59  2002.01.31  
Добавление поля в таблицу Interbase