Q&A

  • AsString에 대한 질문입니다.
Delphi7과 Oracle 8i를 사용하고 있습니다.
문제는 어떤 필드의 Data가 'B '로 구성되어 있는데 AsString으로 Data를 읽어들이면 'B'로 읽혀진다는 점입니다.
이 필드의 Data를 Space를 포함한 'B '로 읽어내기 위해선 어떻게 해야 하는지 고수님들의 조언부탁드립니다...

3  COMMENTS
  • Profile
    nilriri™ 2003.07.04 21:22
    샬롬

    ADO 드라이버 종류에 따라 결과값에 차이가 나더군요..

    Provider=MSDAORA.1;Password=tiger;User ID=scott;Data Source=banca;Persist Security Info=True
    data : '0001 '
    showmessage('a'+ADOQuery1.FieldByName('empno').AsString+'z')
    result : 'a0001 z'

    Provider=OraOLEDB.Oracle.1;Password=tiger;Persist Security Info=True;User ID=scott;Data Source=banca
    data : '0001 '
    showmessage('a'+ADOQuery1.FieldByName('empno').AsString+'z')
    result : 'a0001z'


    확인해보니..결과가 이렇게 나오네요..^^;

    즐프~

  • Profile
    nilriri™ 2003.07.04 21:01
    샬롬~

    데이터가 'B '처럼 뒤에 스페이스가 있다고 하셨는데..

    뒤에 스페이스가 있다는건 어디서 확인한 건가요?

    오라클은 char(2), varchar(2) 일때 'B'를 인서트 하면..
    전자는 뒤에 자동으로 스페이스가 붙게 됩니다.
    후자는 'B'로 저장이 되구요..

    asString에서 자동으로 trim이 된다니 좀 이상하네요..

    sql plus나 toad 같은 곳에서 실제 저당되어있는 자료를 확인해 보시기 바랍니다.

    select replace(columnName,' ', '_') from tableName

    일케 하셔서 확인해 보시구요..

    select rpad(columnName,2, ' ') from tableName

    이렇게 하시면 강제로 두자리로 맞춰줍니다. (뒤쪽에 공백문자를 채워서..)
    즐프~

  • Profile
    한재호 2003.07.05 02:02
    ;