Q&A

  • ado 컴포넌트를 사용했는데...
ado 컴포넌트를 사용했는데 db안에는 datetime 형인데 '0001-01-01' 이라는 값으로 초기값이 셋팅되어있습니다.(DB : sybase iq) 이걸 화면에 뿌려줄때 방법을 몰르겠네요. bde 사용하면 에러가 안나지만 ado사용하면 어떻게 해던 에러가 납니다. mult-step 에러 어쩌구 저쩌구.. 하지만 현재는 ado만 사용할수 밖에 없는 상황입니다...
그래서 급한데로...
try except 절로 처리를 했습니다.
예전에도 질문했었는데 명확한 답이 없어서 다시 질문합니다.
ado 컴포넌트를 사용했는데 db안에는 datetime 형인데 '0001-01-01' 이라는 값으로 초기값이 셋팅되어있습니다.(DB : sybase iq) 이걸 화면에 뿌려줄때 방법을 몰르겠네요. bde 사용하면 에러가 안나지만 ado사용하면 어떻게 해던 에러가 납니다. mult-step 에러 어쩌구 저쩌구.. 하지만 현재는 ado만 사용할수 밖에 없는 상황입니다...
그래서 급한데로...
try except 절로 처리를 했습니다.

<!--CodeS-->
  try
    sg.Cells[m-1, j] := AdoQuery1.Fields[m-1].AsString;// 또는 AsVariant;
  except
    sg.Cells[m-1, j] := '0001-01-01';
  end;
<!--CodeE-->

문제는 디버그시에는 에러가 나지만 실행화일로  실행하면 에러가 나질 않더군요...

이렇게 프로그램을 배포해도 문제가 되나 모르겠네요...아시는 분 답변 부탁드립니다..
아니면 다른 방법이 있는지.... 그럼 수고하세요... 읽어주셔서 감사합니다.

  
2  COMMENTS
  • Profile
    KDDG_Apine 2006.02.21 03:33
    음  ADO 은 컴포넌트는 보기보다 예민한 구석이 있더군요...

    데이터를 AsVariant 로 되어 있다면 이 데이터 형식이 무언인지 확실히 알려줘야 합니다..

    그리고 데이터 값이 NULL 값이 아닌지도 예민하더군요....

    fieldbyname 으로 가져오기 전에 가져올 데이터 필드의 datatype  무언이지 먼서 해 주시고 데이터를 가져오시면 에러가 나지 않을겁니다...

    그리고 데이터를 받을때도 dataTiem 변수로 받는게 좋겠죠...  ^^


  • Profile
    nilriri™ 2006.02.16 04:25
    AdoQuery1를 오픈하기위한
    쿼리문장 자체에서.  날짜타입 필드를  convert 함수를 이용해서 미리 varchar타입으로 변화하셔서
    쿼리를 하시면 어떤가요?

    convert(varchar, 필드명, 111)    or
    convert(varchar, 필드명, 112)  

    ...