Q&A

  • Oracle BLOB 필드에 파일저장/불러오기
안녕하십니까?

오늘도 시간만 훌쩍훌쩍 넘기며 머리를 쥐어짜고 잇습니다. ㅡㅠ.

요넘의 블럽이란넘이 날 괴롭히네요.

질문은 이렇습니다.

오라클 Blob 필드에 파일 및 그림 저장입니다.

그림 저장/파일자장 잘됩니다. 깨짐도 없습니다.

텍스트 파일 잘됩니다. CSV 파일도 잘읽힘니다.

근데, DOC랑 XLS, PPT 는 안됩니다. ㅡㅡ;

저장전과 불러왓을때의 사이즈 또한 같고, 안의 내용도 같습니다.

그러나, 실제 파일 오픈하면, 엑셀등에서 읽지를 못하네요.

아마 Binary 문제인듯 한데, 쩝..ㅠ.ㅠ

혹 알고 계신 분 조언 부탁드립니다. 감사합니다.

아랜 소스입니다.



//파일로 저장
      try
        blob := TB_Photo.CreateBlobStream(TBlobField(TB_Photo.FieldByName('File1')), bmWrite);

         fs := TMemoryStream.Create;
         blob.Seek(0, soFromBeginning);
         sz := Blob.Size;
         Fs.LoadFromStream(Blob);
         Fs.Position := 0;
         Fs.SaveToFile(SP_File.FileName);

      finally
         fs.Free;
         blob.Free;
      end;

// DB에 저장
      try
         blob := TB_Photo.CreateBlobStream(TBlobField(TB_Photo.FieldByName('File1')), bmRead);
         fs := TMemoryStream.Create;
         fs.LoadFromFile(OP_File.FileName);
         blob.CopyFrom(fs, fs.Size);

      finally
         fs.Free;
         blob.Free;
      end;
1  COMMENTS
  • Profile
    장태원 2005.06.16 22:42
    blob field 를 long raw  로 잡으니 잘되네.

    대신, 한테이블 하나밖에 사용이 안되네요 ㅡㅡ;