22979 - 23337까지 논의를 했던 부분입니다.
가르침데로 적용하였는데 잘되지 않아서 다시 한번 부탁드립니다.
1. 가르침데로 Informix에서 SQL문으로 Update한 결과는 잘 처리되었습니다.
(적용예 1) update A_DB
set Fld_B = null
where Fld_B = '' or Fld_B = ' ';
(적용예 2) select count(Fld_A) count(Fld_B)
From A_DB
(결과) update는 잘되었고 count(Fld_B)의 값은 Zero 이었습니다.
2. 그러나 Delphi문에서 DataBase를 처음 Insert할 때에 Null을 삽입하는 것은
실패하였습니다.
(적용예 1) A_DB.Field_B.value := Null; (value 대신 text를 써도 마찬가지)
(적용예 2) Edit_Field_B.text := null;
(결과) 위 어떤 방식으로 적용하던간에 결과 메세지는
'Invalid Variant Type Conversion'으로 나타남
3. 가이드를 해주실 고수님의 고견을 구합니다.
감사합니다. - 고재성 -
성호종 wrote:
> 고재성 wrote:
> null이 되어야 할 필드에 혹시 '' <- 이렇게 하시지 않으셨나요?
> 이렇게 하게 되면 널과는 다른 어떠한 값으로 인식을 합니다.
> 때문에 반드시 null <- 이렇게 insert하셔야 합니다.
> 저는 informix 경력 3년입니다.
>
> > Hoon Reader wrote:
> > > Not NULL로 Field 속성을 설정한걸로 보입니다.
> > > Field 속성을 Accept NULL로 설정하세요.
> > >
> > 당연히 Not Null로 설정하지 않았습니다.
> > 동일한 Program을 Paradox에서 적용할 경우 Null값이 나옵니다.
> > 그런데 Informix에서 사용하면 Not Null값이 나오니까 답답한 상태입니다.
> >
> > 참고로 해당 Field는 char 모드에 8자리 입니다.
델파이에서 insert할때 널을 insert하려면
아예 field를 빼버리는 방법이 있습니다.
예를 들자면
if abc = '1' then
begin
query1.sql.text := 'insert into table(a,b,c) values(:a1, :a2, :a3)';
end
else
begin
query1.sql.text := 'insert into table(a,b)'+ <----- 여기서는 filed 'c'는 null
' values(:a1, :a2)';
end;
query1.execsql;
이렇게 하면 a,b,c의 필드중 abc가 '1'이 아닌경우는 'C'필드를 널로 insert 합니다.
> 22979 - 23337까지 논의를 했던 부분입니다.
> 가르침데로 적용하였는데 잘되지 않아서 다시 한번 부탁드립니다.
>
>
> 1. 가르침데로 Informix에서 SQL문으로 Update한 결과는 잘 처리되었습니다.
> (적용예 1) update A_DB
> set Fld_B = null
> where Fld_B = '' or Fld_B = ' ';
> (적용예 2) select count(Fld_A) count(Fld_B)
> From A_DB
> (결과) update는 잘되었고 count(Fld_B)의 값은 Zero 이었습니다.
>
> 2. 그러나 Delphi문에서 DataBase를 처음 Insert할 때에 Null을 삽입하는 것은
> 실패하였습니다.
>
> (적용예 1) A_DB.Field_B.value := Null; (value 대신 text를 써도 마찬가지)
>
> (적용예 2) Edit_Field_B.text := null;
>
> (결과) 위 어떤 방식으로 적용하던간에 결과 메세지는
> 'Invalid Variant Type Conversion'으로 나타남
>
> 3. 가이드를 해주실 고수님의 고견을 구합니다.
>
> 감사합니다. - 고재성 -
>
>
>
> 성호종 wrote:
> > 고재성 wrote:
> > null이 되어야 할 필드에 혹시 '' <- 이렇게 하시지 않으셨나요?
> > 이렇게 하게 되면 널과는 다른 어떠한 값으로 인식을 합니다.
> > 때문에 반드시 null <- 이렇게 insert하셔야 합니다.
> > 저는 informix 경력 3년입니다.
> >
> > > Hoon Reader wrote:
> > > > Not NULL로 Field 속성을 설정한걸로 보입니다.
> > > > Field 속성을 Accept NULL로 설정하세요.
> > > >
> > > 당연히 Not Null로 설정하지 않았습니다.
> > > 동일한 Program을 Paradox에서 적용할 경우 Null값이 나옵니다.
> > > 그런데 Informix에서 사용하면 Not Null값이 나오니까 답답한 상태입니다.
> > >
> > > 참고로 해당 Field는 char 모드에 8자리 입니다.