|
parkj 님이 쓰신 글 :
: 이미지를 db에 저장하려고 합니다. c builder를 한지 얼마 안되서 그러는데요 혹시 저장하고 읽어
: 들이는 방법 좀 알려주세요.. 죄송합니다.
일단 DBMS에서 BLOB 필드를 먼저 정의해야 합니다.
Interbase의 경우를 예로 들면 다음과 같습니다.
CREATE TABLE EMPLOYEE
(
EMP_NO EMPNO NOT NULL,
FIRST_NAME FIRSTNAME NOT NULL,
LAST_NAME LASTNAME NOT NULL,
FULL_NAME COMPUTED BY (last_name || ', ' || first_name),
PICTURE BLOB /* 이 부분 */
PRIMARY KEY (EMP_NO)
);
일단, IBTable1을 이 EMPLOYEE 테이블에 연결합니다.
PICTURE 필드에 그림이 저장되어 있다고 가정하고,
이 그림을 Image1에 표시하려면
IBTable1의 OnAfterScroll 이벤트 핸들러에서
Image1->Picture->Assign(IBTable1->FieldByName("PICTURE"));
로 하면 됩니다.
반대로 Image1에 있는 그림을 PICTURE 필드에 저장하는 경우를 생각해보죠.
일단 Image1에 그림 파일(BMP, ICO, WMF)을 로드해 둡니다.
Image1->Picture->LoadFromFile("김백일.BMP");
현재 레코드의 PICTURE 필드에
Image1에 있는 그림을 저장하려면
Table1->Edit();
Table1->FieldByName("PICTURE")->Assign(Image1->Picture);
Tabel1->Post();
로 하면 됩니다.
|