안냐세요...^^
오라클을 이용한 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.
> 안냐세요...^^
> 오라클을 이용한 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로 했을때는 아무 문제가 없었거든요.