본문 바로가기

[Delphi&Erp]디비에 이미지 넣고 뺴기

아래는 사진을 입력하는 코드입니다..

procedure TfAddPer.InsertPic ;
begin
   if not Image.Picture.Bitmap.Empty then
   begin
       with Table1 do
       begin
           TableName := 'person_pic' ;
           Open ;
           Insert ;
           FieldByName('cMainKey').AsString := m_sIDNo ;
           FieldByName('cIDNo').AsString := m_sIDNo ;
           FieldByName('cRegDate').AsString := m_sCurrentDate ;
           FieldByName('cEditDate').AsString := m_sCurrentDate ;
           FieldByName('cXstChk').AsString := '1' ;
           FieldByName('cGb71Code').AsString := NWPDATAREGTYPE ;
           FieldByName('c71Name').AsString := m_s71Name ;
           FieldByName('bImage').Assign(Image.Picture) ;
           Post ;
           Close ;
       end ;
   end ;
end ;

프로그램 전체에서 TTable 컴포넌트를 공유하기 위해
연결된 TableName을 동적으로 바꾸면서 사용했습니다..

나머지 필드들은 설계하신 테이블 레이아웃대로 변경하시면 될 것 이고요..
Image에 사진이 들어있고 Assign을 시키면 해당 테이블에 연결됩니다..

사진은 스캔받아서 입력하신다고 했으니
제가 사용한 방법대로 TImage 컴포넌트를 더블클릭하면 File Open 다이얼로그를
띄우면 무난하겠군요..
그 코드는 아래와 같습니다.. bmp 파일만 지원합니다..
TImage 컴포넌트가 bmp만 지원하는 관계로..
다른 여타 포멧도 지원하시려면 델파이 기본컴포넌트인 TImage가 아닌
jpg나 gif를 지원하는 컴포넌트를 찾아 사용하시면 될 겁니다..
이건 저도 찾아보질 않아 잘은 모르겠지만
인터넷이나 PC통신에서 뒤져보시면 찾으실 수 있을 겁니다..

procedure TfAddPer.ImageDblClick(Sender: TObject);
begin
   OpenPictureDialog.DefaultExt := GraphicExtension(TBitmap);
   OpenPictureDialog.FileName := GraphicFileMask(TBitmap);
   OpenPictureDialog.Filter := '비트맵 파일 (*.bmp)|*.BMP' ;
   OpenPictureDialog.Title := '사진 파일을 선택해주세요..' ;

   if OpenPictureDialog.Execute then
       Image.Picture.LoadFromFile(OpenPictureDialog.FileName) ;
end;

마지막으로 저장된 이미지를 테이블에서 읽어오는 코드입니다..

       if FieldByName('bImage').AsString<>'' then
           Image.Picture.Assign(FieldByName('bImage')) ;


[펌]http://www.sqlca.com/