Q&A

  • 모든 File을 DB에 저장하고, 불러내서 보여주는 방법좀 부탁드립니다.
현재는 File명을 DB에 저장하고 OleContainer를 이용하여 보여주고 있습니다.

file(hwp,excel,bmp....)관리 하기가 힘들어서 DB에 저장하고 사용할려고 합니다. 많은 도움 부탁드립니다.

1  COMMENTS
  • Profile
    김동환 2000.09.22 02:42
    고재구 wrote:

    > 현재는 File명을 DB에 저장하고 OleContainer를 이용하여 보여주고 있습니다.

    > file(hwp,excel,bmp....)관리 하기가 힘들어서 DB에 저장하고 사용할려고 합니다. 많은 도움 부탁드립니다.



    현재의 OleContainer에서 올라가는 있는 개체는 DB에저장 하는 방법은 아직 구하지 못했구요.

    파일을 열때 DB로 저장하고 다시 불러오는 방법은 하드 Disk에 저장하여 다시 OleContainer에

    삽입하는 방법으로 하였습니다.



    ole1 : ToleContainer 입니다.

    OpenDialog : TOpenDialog 입니다.



    procedure TForm1.IBitBtn1Click(Sender : TObject);

    begin

    if not tblOle.Active then tblOle.Open;

    if OpenDialog.Execute then

    begin

    if ole1.Modified = False then

    begin

    ole1.CreateObjectFromFile(OpenDialog.FileName, True);

    tblOle.Insert;

    tblOle.FieldByName('FileName').AsString := OpenDialog.FileName;



    TBlobField(tblOle.FieldByName('Ole')).LoadFromFile(OpenDialog.FileName);

    // 파일을 Blob 필드로 저장을 먼저 합니다.



    tblOle.Post;

    end;

    end;

    end;



    procedure TForm1.IBitBtn2Click(Sender : TObject);

    begin

    if not tblOle.Active then tblOle.Open;

    if ole1.Modified = False then

    begin

    if tblOle.Locate(['BBB', '1', []) then

    begin

    SaveDialog.FileName := 'C:' + tblOle.FieldByName('FileName').AsString;

    TBlobField(tblOle.FieldByName('AAA')).SaveToFile(SaveDialog.FileName);

    //먼저 DB에서 파일을 읽어 와서 하드디크에 저장한다.

    ole1.CreateObjectFromFile(SaveDialog.FileName, True);

    //저장 된 파일을 다시 읽어 온다.

    end;

    end;

    end;



    위와 같이 해주면 파일을 하드에 저장후 다시 열게 되어있습니다.

    파일경로는 제 마음대로 했고 파일의 중복검사는 하지 않았습니다.