Форум: "Базы";
Текущий архив: 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 и его евентах
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c