Q&A

  • 오라클DB에서 BLOB파일 읽어들이기
안냐세요...^^

오라클을 이용한 CGI프로그램을 짜고 있는중입니다.

브라우저에서 테스트를 해보면

텍스트 데이터들은 오라클로부터 잘읽어 들이는데 이미지(.bmp)는

못읽어 오면서 에러를 내더군요..-_-;

고수님들 해결책 좀 알려주세요..^^

SQL_Explorer에를 봐도 'Venue_Map'이라는 필드는 BLOB라고 표시되고

오라클의 'Schema Manager' 에서 봐도 BLOB 타입이라고 표시되고

델파이의 데이타 모듈 테이블의 프로퍼티중 'FieldDefs'를 보면

'Venue_Map'의 데이터 타입은 'ftBlob'로 나와 있습니다.



주요소스 :



VenueDM.Table1.Open;

VenueDM.Table1.IndexName :='';

if VenueDM.Table1.FindKey([VenueNo]) then begin

venueDm.Database1.StartTransaction;

VenueDM.Table1.Edit ;

VenueDM.Table1.FieldByName('VenueNo').AsInteger := VenueNo ;

에러부분->(VenueDM.Table1.FieldByName('Venue_Map')as TBlobField).LoadFromFile(ImageName);

VenueDM.Table1.Post;

venueDm.Database1.Commit;

end





에러메시지 :



Project JVenue.exe raised exception class EDBEngineError with message

'ERROR: Non-blob column in table required to perform operation'.

Process stopped. Use Step or Run to continue.





1  COMMENTS
  • Profile
    이재식 2000.01.18 01:42
    문경열 wrote:

    > 안냐세요...^^

    > 오라클을 이용한 CGI프로그램을 짜고 있는중입니다.

    > 브라우저에서 테스트를 해보면

    > 텍스트 데이터들은 오라클로부터 잘읽어 들이는데 이미지(.bmp)는

    > 못읽어 오면서 에러를 내더군요..-_-;

    > 고수님들 해결책 좀 알려주세요..^^

    > SQL_Explorer에를 봐도 'Venue_Map'이라는 필드는 BLOB라고 표시되고

    > 오라클의 'Schema Manager' 에서 봐도 BLOB 타입이라고 표시되고

    > 델파이의 데이타 모듈 테이블의 프로퍼티중 'FieldDefs'를 보면

    > 'Venue_Map'의 데이터 타입은 'ftBlob'로 나와 있습니다.

    >

    > 주요소스 :

    >

    > VenueDM.Table1.Open;

    > VenueDM.Table1.IndexName :='';

    > if VenueDM.Table1.FindKey([VenueNo]) then begin

    > venueDm.Database1.StartTransaction;

    > VenueDM.Table1.Edit ;

    > VenueDM.Table1.FieldByName('VenueNo').AsInteger := VenueNo ;

    > 에러부분->(VenueDM.Table1.FieldByName('Venue_Map')as TBlobField).LoadFromFile(ImageName);

    > VenueDM.Table1.Post;

    > venueDm.Database1.Commit;

    > end

    >

    >

    > 에러메시지 :

    >

    > Project JVenue.exe raised exception class EDBEngineError with message

    > 'ERROR: Non-blob column in table required to perform operation'.

    > Process stopped. Use Step or Run to continue.

    >

    > 이재식 Wrote :

    안녕하십니까?



    제가 답변은 아니고요,

    그냥 제 소견입니다.



    보니까, 타입변환을 하셨습니다.

    제가 다른것은 어떻게 되어있는지 모르겠지만,

    위처럼 TblobField필드로 타입변활때는 쿼리 컴포넌트를 이용해서

    쿼리를 던지는 상황에서는 잘 됩니다.

    그런데, 저렇게 매소드(edit)을 써서 하면 글셰요...

    일전에 제가 저렇게 쿼리 컴포넌트로 해서 SQL쿼리를 던지는 상황에서는

    TblobField로 했을때는 아무 문제가 없었거든요.