![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Null [D6, D7, MS Access]
Zlod3y © (2004-07-16 10:50:00)В числовое поле при использовании метода Insert в таблицу сразу записывается 0! Мне не нужен этот ноль, нужно пустое поле.....и я поступаю сл. образом:
with DataModule1.Table1 do begin
.....
FieldValues['Field_name']:=null;
.....
Post; //<-здесь возникает искличительная ситуация
end;
Конечно я обрабатываю такую искличительную ситуацию оч. просто:
with DataModule1.Table1 do begin
.....
FieldValues['Field_name']:=null;
.....
try
Post; //<-здесь возникает искличительная ситуация
except
//здесь пусто
end;
refresh;
end;
Refresh делаю потому-что после Post таблица переводится в режим dsEdit...
Как мне избежать этой исключительной ситуации?
Zlod3y (2004-07-17 09:14:00) [1]Всё братва.....спасибки всем :-)....всё-таки решил ничего не делать и оставить всё как было
ЗЫ. D.J.Star ты не прав. nil - это указатель на пустоту, а null - это даже не ноль :^)
ЗЫ2. а вариант в котором мне значение по умолчанию для поля пришлось отвергнуть, подробности "почему?" мне лень описывать.
Reindeer Moss Eater (2004-07-16 18:40:00) [2]Ну вы чё, братва!!! Null это "0", а пустое значение - это "nil"!
Братва тут перетерла и порешила что null это вариант, а nil это Pointer.
D.J.Star (2004-07-16 18:33:00) [3]
> В числовое поле при использовании метода Insert в таблицу
> сразу записывается 0! Мне не нужен этот ноль, нужно пустое
> поле.....и я поступаю сл. образом:
>
> with DataModule1.Table1 do begin
> .....
> FieldValues['Field_name']:=null;
> .....
> Post; //<-здесь возникает искличительная ситуация
> end;
>
>
> Конечно я обрабатываю такую искличительную ситуацию оч.
> просто:
>
> with DataModule1.Table1 do begin
> .....
> FieldValues['Field_name']:=null;
> .....
> try
> Post; //<-здесь возникает искличительная ситуация
> except
> //здесь пусто
> end;
> refresh;
> end;
>
>
> Refresh делаю потому-что после Post таблица переводится
> в режим dsEdit...
>
> Как мне избежать этой исключительной ситуации?
Ну вы чё, братва!!! Null это "0", а пустое значение - это "nil"!
Во всяком случае нужно преереструктуизировать таблицу и отменить обязательное присвоение значение полю.
Reindeer Moss Eater (2004-07-16 13:24:00) [4]Ну и при чем здесь какой-то грид?
И тем более какой-то символ отображаемый в этом гриде и к физическому полю таблицы имеющий весьма отдаленное отношение?
У человека есть явное присвоение значения полю датасета.
Никакое DEFAULT значение в это поле ни в одном движке никогда не попадет.
Хоть десять гридов позови на помошь.
Viktor1 (2004-07-16 13:20:00) [5]При следющем открытии поле где по умолчанию 0 , в Gride будет забито нулями.
Reindeer Moss Eater (2004-07-16 12:40:00) [6]на инсерт конечно же, а не на апдейт.
Reindeer Moss Eater (2004-07-16 12:39:00) [7]Значение по умолчанию вставится в поле если из приложения придет запрос на апдейт записи в котором поле это не упомянуто вообще.
В противном случае никакой defaul туда не попадет.
Viktor1 (2004-07-16 12:37:00) [8]Возможно стоит по умолчанию 0 в Accesse.
Открой таблицу в самом Accessе. Там внизу есть "Значение по умолчанию", так оно при созданиии цислового поля сразу стовится 0.
Reindeer Moss Eater (2004-07-16 12:28:00) [9]> FieldValues['Field_name']:=null;
FieldValues - это Variant
Вариант со значением null для числового поля это ноль.
Все по-честному.
Соловьев (2004-07-16 12:26:00) [10]
> Мне не нужен этот ноль, нужно пустое поле.....
FieldByName('field').Clear;
Zlod3y (2004-07-16 11:22:00) [11]
> Anatoly Podgoretsky © (16.07.04 11:05) [2]
> Эту строчку убрать из кода программы
> FieldValues['Field_name']:=null;
Тогда в поле запишется "0"
Anatoly Podgoretsky (2004-07-16 11:05:00) [12]Эту строчку убрать из кода программы
FieldValues['Field_name']:=null;
Ega23 (2004-07-16 10:57:00) [13]Default на это поле NULL поставь.