![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как при вставке задать полям знач-я по умолч., те что в БД заданы
TheEd © (2006-02-22 02:24:00)Господа мастера, собственно subj.
Подробности: тип БД - IB7
поле имеет default-значение.
По идее, после вставки если юзверь ничего не ввёл оно должно быть присвоено, но это не происходит, более того, хотелось бы это значение получить сразу после вставки.
ps:ответ типа: задать полюDefaultExpression, и вOnNewRecordделатьSomeField.Value := SomeField.DefaultExpressionне катит, так как это уже програма влазит в значения по умолчанию, а корректнее когда это делает СУБД (мухи отдельно, котлеты - отдельно)...
evvcom (2006-02-22 10:15:00) [21]Не знаю, как в IB, а в оракле ставлю для default-поля constraint not null и передавая в in/out параметре null, получаю default-значение. Напиши наследника на свой DataSet, там писать-то десяток строк. После выполнения запроса цикл по всем параметрам, и если параметр out или in/out, то прописать значение в поле, сопоставленное с этим параметром. И никаких переоткрытий НД!
Виталий Панасенко (2006-02-22 09:31:00) [22]В FIBPlus это решается устновкой одного параметра для DataSetа. www.devrace.com для xUSSR - дешево. Для Украины - 83 грн., год бесплатное обновление
Deniz (2006-02-22 06:33:00) [23]Если сделать Refresh только что добавленной записи, то поля имеющие default значения должны показать их(default значения). Но здесь есть грабли.
К примеру:
Create table t (i integer, s varchar(10) default '111')
так вот если послать запрос
insert into TEST(i) values(1)
то s примет значение '111'
а если послать запрос
insert into TEST(i, s) values(2, null)
то в s будет null, и default не отработает.
Default подставляется только если поле не указано в запросе.