C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[21576] Re:Re:알려주십시오~~!!!!! (데이타베이스관련)
죄악 [] 781 읽음    2002-09-20 00:18
ㅜㅜ 감솨함돠...암두 관심을 가져주시지 않았는데..

이렇게 또 질문드리는데 죄송하네요...

아래와 같이...주석부분도 다해봤습니다...

깊이 있는 공부를 안하다 보니...이것저것 다 해보게 되는군요..

제가 데이타베이스만 잡고 있다가 프로그램도 할라니...참 힘드네요..

한번만 더 봐주시면 감사하겠습니다....

완전한 예제를 보여주시면 더 감사하구요(너무 무리한 부탁이죠? 질문자의 특성인가 봅니다.)

(근데...책 언제 나오나요? 오라클에 이미지나 파일 집어넣구..검색하는 것도

나오나요?? 그것만 나와도 당장 달려가 책 사볼텐데 말이죠.. ^^)

        ClientDataSet2->Params->Items[0]->Value = Edit1->Text;
        ClientDataSet2->Open();

        //dynamic_cast<TJPEGImage *>(Image1->Picture->Graphic)->Assign(ClientDataSet2->FieldByName("PHOTO"));
        //Image1->Picture->Assign(ClientDataSet2->FieldByName("PHOTO"));
        //dynamic_cast<TJPEGImage *>(Image1->Picture->Graphic);
        //dynamic_cast<TJPEGImage *>(DBImage1->Picture->Graphic)->Assign(jpg);


        TBlobStream *bs;
        TJPEGImage *jpg;

        bs = new TBlobStream((TBlobField *)(ClientDataSet2->FieldByName("PHOTO")), bmRead);

        jpg = new TJPEGImage;
        jpg->LoadFromStream(bs);


        //dynamic_cast<TJPEGImage *>(DBImage1->Picture->Graphic)->Assign(jpg);
        //(Image1->Picture->Graphic)->Assign(jpg);
        //dynamic_cast<TJPEGImage *>(Image1->Picture->Graphic)->Assign(jpg);
        //((TJPEGImage *)(Image1->Picture->Graphic))->Assign(jpg);
        Image1->Picture->Graphic->Assign(jpg);


        delete jpg;
        delete bs;



박지훈.임프 님이 쓰신 글 :
: 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"));
: :
: : 음...환장하것네요...
: : 
: : 외국의 뉴스그룹도 찾아보고 했는데도 당췌 모르겠네요..
: : 
: : 여유있으실때 해결의 실마리가 될만한 단어라도 꼭 알려주세요...
: : 
: : 한달동안 이짓만 하고 있네요...헐헐~(그냥 넋두리 임돠..)
: : 
: : 읽어 주셔서 감사하구요...행복한 하루되시길 바랍니다..

+ -

관련 글 리스트
21526 알려주십시오~~!!!!! (데이타베이스관련) 죄악 756 2002/09/18
21572     Re:알려주십시오~~!!!!! (데이타베이스관련) 박지훈.임프 867 2002/09/19
21576         Re:Re:알려주십시오~~!!!!! (데이타베이스관련) 죄악 781 2002/09/20
21612             Re:Re:Re:알려주십시오~~!!!!! (데이타베이스관련) 박지훈.임프 903 2002/09/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.