Q&A

  • 오라클db 에서 blob 다운로드 ?

db는 오라클 817을 사용하고, delphi 5  사용합니다.
운영체제는 윈도우2000 입니다.

다운로드 하는 부분을 아래와 같이 작성했습니다.

32kb 이하는 다운로드가 잘 되는데
32kb 이상의 파일들은 32kb로 다운로드 됩니다.

그런데 운영체제를 윈도우me를 사용하다가 2000으로 업그레이드 한
컴퓨터에서는 다운로드가 잘 됩니다.

고수님의 조언을 부탁드립니다.



if Query2.RecordCount > 0 then
  begin
    k := 0;
    byte_read2 := 0;
    setlength(wert, Query2.RecordCount, 1);


    while not Query2.Eof do
    begin
      wert[k, 0] := Query2.FieldByName('NFIL').AsString;
      Query3.Sql.Clear;
      Query3.Sql.Add('SELECT LFIL FROM VERSION_TEMP WHERE nfil = :ls_fil_nam');
      Query3.ParamByName('ls_fil_nam').AsString := wert[k, 0];
      Query3.Open;

      bi := TblobStream.Create(TBlobField(Query3.FieldByName('LFIL')), bmRead);
      Result := bi.Seek(0, 2);
      han := (Result div 100);      //max를 100이라 했을때 한눈금
      loops := (Result div han);    //max : 100
      progressBar1.max := loops;

      for j := 1 to loops do
      begin
          TBlobField(Query3.FieldByName('LFIL')).SaveToFile('.' + wert[k, 0]);
          progressBar1.Position := j;
          progressBar2.Position := byte_read2 + (j * han);
      end;
     byte_read2 := byte_read2 + Result;

      Query3.Close;
      inc(k);
      Query2.next;

      Label5.Caption := IntToStr(Result);
      Label7.Caption := IntToStr(byte_read2);
      Label4.Caption := IntToStr(k) + ' of ' + IntToStr(Query2.RecordCount);
    end;
  end;
2  COMMENTS
  • Profile
    KDDG_ZZOM 2003.05.27 22:30
    맞는지는 모르지만...

    BDE Administrator에서
    Configuration텝의 Drivers의 Native의 Oracle의 BLOB SIZE가 32로 되어있을겁니다... 거기를 늘려보세요...

    즐프하세요...

  • Profile
    뭉치 2003.05.27 23:49
    답변에 감사드립니다....