Q&A

  • [답변] ^^;; 잘 모르겠네요...도움좀...float타입의 필드에 공백(null)을 넣어야 하는데
          if _rain <> '' then
            ParamByName('rain').AsFloat       :=  StrToFloat(_rain)
          else
            ParamByName('rain').AsFloat       :=  null;
DB에 입력할때...
이렇게 하면 에러가 발생하네요....
널값은 float타입에 맞지를 않는다면서....
제가 원하는건 if 문에 따라 값이 없으면 null 값이 들어가야 하거든요...
있으면 당근 float타입의 값이 들어가겠지만요...
처리방법이 없을까요?
빈값을 넣어줘야 하는데....

도움부탁드립니다.
4  COMMENTS
  • Profile
    손희석 2004.01.21 06:34
    클리어 메서드가 있네요

        if _rain <> '' then
           ParamByName('rain').AsFloat       :=  StrToFloat(_rain)
         else
           ParamByName('rain').Clear;

    한번해보세요.. 될거 같은데 ^^ 해보지는 않았어요,,
  • Profile
    델파이6 2004.01.20 00:52


    이렇게 하면 안될까요.

           if _rain <> '' then
               ParamByName('rain').AsFloat       :=  StrToFloat(_rain)
           else
               ParamByName('rain').AsString      :=  '';
  • Profile
    곰다방~미스김 2004.01.20 01:16
    db 테이블에 지정된 타입이 float타입이라그런지 null값이 들어가는게 아니라 0 이 들어가네요...기본값엔 null로 했는데두요... -_-;;;
    db서버는 ms sql입니다....
    0이 들어가믄 안되는디.. ㅠㅠ
    다른 방법은 없을까요?


  • Profile
    ^ㅡ^ 2004.01.20 19:18
    방법이라고까지 할꺼는 없지만요
    일단 Sql문장이 있을꺼에요
    Insert 문이든 UpDate 문이든 Delete문이든

    일단

       Sql.Add(' Insert Into 데이블 ( ');

       if _rain <> '' then
           Sql.Add(' rain,          ');
      
       Sql.Add('aaa ,bbb   )    ');
       Sql.Add(' Values       (  ');
      
      if _rain <> '' then
           Sql.Add(' :rain,          ');
      
       Sql.Add(':aaa ,:bbb   )    ');
       Sql.Add('   ');
        
       if _rain <> '' then
         ParamByName('rain').AsFloat       :=  StrToFloat(_rain);

       ParamByName('aaa').AsString        := '';
       ParamByName('bbb').AsString        := '';
       ExceSql;


    이런식으로 update나 delete도 하면
    rain 이라는 파람에는 데이타가 있으면 입력할꺼고 없으면 아예 파람에 입력이 안 되겠죠..
    답변이 될려나 모르겠네요