|
안녕하세요..
전에두 한번 답변을 한것 같은데...
사용하시는 디비가 오라클인가요? 그런거 같던데..
저는 그림을 저장할때는 LoadFromFile을 썼습니다.
물론 TImage에 그림이 있다면 Picture를 사용하셔두 될것 같구여..
하여간 제가 한 방법은 다음과 같습니다.
도움이 되셨으면 합니다.
/* 오라클 디비에 그림 저장 */
// 참고로 전 그림화일의 화일명을 가지고 그림을 저장시킵니다.
// 또한 제가 쓰는 그림 화일은 jpg형식만 가능하구여..
INSERT INTO Table (필드1, 필드2, 그림필드,...)
VALUES(....., :Pic,..)
이렇게 되어있구여..
Query->ParamsByName("Pic")->LoadFromFile(Edit->Text.c_str(), ftGraphic);
// 그림저장필드 화일명이 있는 에디트박스
이렇게 하면 그림이 디비에 들어갑니다.
/* 오라클 디비에서 그림 읽어오기 */
// 저는 그림을 읽어서 TImage 콤포넌트를 이용해서 보여줍니다.
TBlobStream *bs;
TJPEGImage *Jpg;
bs = new TBlobStream((TBlobField *)(Query->FieldByName("CMap")), bmRead);
Jpg = new TJPEGImage;
Jpg->LoadFromStream(bs);
Image->Picture->Graphic = Jpg;
delete Jpg;
delete bs;
/* 만약에 그림화일이 gif라면 TGIFImage를 이용하시면 되구여.
일반 bmp화일일 경우에는 그냥 DBImage를 이용하시면 보이기는 합니다만 기본적으로 Blob size가
32K밖에는 안되기때문에 아마 그림이 잘려서 보이실꺼예요.. (대부분의 bmp는 size가 커서..)
default blob size를 늘리시던지 아니면 jpg나 gif를 이용하시는게 더 나으실것 같네요..*/
도움이 되셨길 바랍니다.
그럼..
이수인 님이 쓰신 글 :
: gif 콤포넌트는 공짜가 아니라고 하던데.. 맞는지 잘 모르겠구요.
: 아무튼 새로 콤포넌트를 깔아야 하는거라고 해서요.
: 안깔고 그냥 jpg를 저장하려고 하는데요.
:
: 검색해서 찾아보니까 델파이에서 jpg를 DB에 넣는 답변이 있어서 봤는데 DBImage를 사용해서 그냥 넣었더라고요. 저는 sql문 사용해서 insert to into ~~~ 해서 값을 넣으려고 하는데요.
:
: 이 방법이 아니더라도요.
: jpg 파일을 열어서 DB에 저장하는 건 어떻게 하나요? 책에도 안나오던데. 정말 못찾겠어요.
: 몇일동안 버벅이고 있는데. 혹시 책이라도.. 아니면 조언 쬐금이라두...
: 부탁드립니다.
:
:
|