同上
是不是TBlobField最大只能保存32K啊?可是我用TBlobField中LoadFromFile函数可以装载的文件就可以超过32K,兄弟们,帮忙

解决方案 »

  1.   

    procedure TfrmDocument.sbViewClick(Sender: TObject);
    var
      TmpPath: array[0..255] of Char;
      ADocID: string;
    begin
      inherited;  ADocID := PFileInfo(lvDocList.Selected.Data)^.BlobID;
      with dmDocument.cdsDocList do
      begin
        Filtered := True;
        Filter := 'DOC_ID = ''' + ADocID + '''';    if RecordCount > 0 then
        begin
          if FieldByName('DOC_CONTENT').Asstring = '' then
          begin
            OkMessageDlg('不存在的数据资料!');
            Abort;
          end;      GetTempPath(255, TmpPath);
          DocName := TmpPath + lvDocList.Selected.Caption;
          try
            ShowMessage(IntToStr((FieldByName('DOC_CONTENT') as TBlobField).BlobSize));
            (FieldByName('DOC_CONTENT') as TBlobField).SaveToFile(DocName);
            case ShellExecute(0, 'Open', PChar(ExtractFileName(DocName)), nil, TmpPath,
              SW_MAXIMIZE) of
              0:;
            end;
          except
            OkMessageDlg('文件正在被使用!');
          end;
        end;
      end;
    end;每次浏览的时候如果文件小于32KShowMessage显示真实大小,如果超过,只显示32K不到一点的固定数字
      

  2.   

    原因我找到了,可是还没有找到解决办法
    原因是我用DELPHI的BDE连接ORACLE时把BLOB SIZE设置为32,如果我不想变动BLOB SIZE的大小,而又要把大于32K的文件从数据库从取出来该怎么办呢?
      

  3.   

    还在用 BDE 哈, 强, BDE 一定得改那个 BLOB SIZE