TImage나 TDbImage의 Picture는 TPicture 타입인데요.
이넘이 기본으로는 JPG를 지원 안하기 때문입니다.
하도 오래되어서 기억이 넘 가물거리는데... (3년 정도 전에 자주 질문받던 내용...)
JPG 이미지는 TJPEGImage 타입으로 캐스팅을 해야 됩니다.
그리고.. '=' 을 써서 집어넣을 수 있는 것이 아니라.. Assign() 함수를 써야 합니다.
대충 기억나는대로 끄적거려보면...
((TJPEGImage *)(Image1->Picture->Graphic))->Assign(jpg);
이렇게 해야 하는 거 같은데...
다음 글도 참고하세요..
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=655
잘 안되시면 다시 질문해주세요.
제가 지금 27시간째 잠을 못자고 있어서 좀 헤롱거립니당...
그럼...
죄악 님이 쓰신 글 :
:
: 개발 환경은 3-Tier 이고, 빌더6을 사용하고 있습니다.
:
: 클라이언트 <-> App 서버 <-> DB 서버
:
: DBMS는 오라클입니다..
:
: 일단 테이블은 varchar2 컬럼과 long raw 컬럼 두개 입니다..테스트용으로 만들었습니다..
:
: #include <jpeg.hpp> 했구요..
:
: 아래와 같이 코드를 작성했습니다...일단 데이타베이스에 들어가는 것 같기는 합니다..
:
: 그런데 아래의 코드를 실행하면 jpeg error #52 에러가 뜨네요..
:
:
: ==========================================================================================
:
: void __fastcall TForm1::Button2Click(TObject *Sender) // DB에 저장
: {
: ClientDataSet1->Params->Items[0]->Value = Edit1->Text;
: ClientDataSet1->Params->Items[1]->LoadFromFile(Edit2->Text.c_str(),ftBlob);
: ClientDataSet1->Execute();
: ClientDataSet1->Close();
:
: //어플리케이션 서버에서..
: //insert into test3(student_num, photo) values(:student_num, :photo);
:
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Button3Click(TObject *Sender) //DB에서 불러오기
: {
: ClientDataSet2->Params->Items[0]->Value = Edit1->Text;
: ClientDataSet2->Open();
:
: //어플리케이션 서버에서..
: //select photo from test3 where student_num = :student_num
:
: TClientBlobStream *bs;
: TJPEGImage *jpg;
: bs = new TClientBlobStream((TBlobField *)(ClientDataSet2->FieldByName("PHOTO")), bmRead);
:
: jpg = new TJPEGImage;
: jpg->LoadFromStream(bs);
:
: Image1->Picture->Graphic = jpg;
:
:
: delete jpg;
: delete bs;
:
:
: }
: //---------------------------------------------------------------------------
:
:
: ==========================================================================================
:
:
:
: 그리고 아래와 같이 해보았더니 역시 'Bitmap image not valid'에러가 뜨는 군요..
:
: ClientDataSet2->Params->Items[0]->Value = Edit1->Text;
: ClientDataSet2->Open();
: mage1->Picture->Assign(ClientDataSet2->FieldByName("PHOTO"));
:
: 음...환장하것네요...
:
: 외국의 뉴스그룹도 찾아보고 했는데도 당췌 모르겠네요..
:
: 여유있으실때 해결의 실마리가 될만한 단어라도 꼭 알려주세요...
:
: 한달동안 이짓만 하고 있네요...헐헐~(그냥 넋두리 임돠..)
:
: 읽어 주셔서 감사하구요...행복한 하루되시길 바랍니다..