请问,怎么把word,excel等文档内容压进数据库?怎么从数据库里调出模板?

解决方案 »

  1.   

    var
      MStream:TStringStream;
      FStream:TFileStream;
    begin
          MStream:=TStringStream.Create('');
          FStream:=TFileStream.Create('WORD文件名与路径',fmOpenRead);
          MStream.CopyFrom(FStream,FStream.Size);
          ShowMessage(IntToStr(MStream.Size));
          MStream.Position := 0;
          With Query1 do
          begin
            Query1.Active := False;
            Query1.Close;
            Query1.SQL.Clear;
            Query1.SQL.Add('Insert into testblob(word) values(:WORD)');
            Query1.ParamByName('WORD').AsBlob := MStream.DataString;
            Query1.Prepare;
            Query1.ExecSQL;
          end;      MStream.Free;
          FStream.Free;end;字段要型,要够大。调出也相同,先保存成文件然后打开...
      

  2.   

    如果你用Access数据库,字段类型就应该是 OLE
    SQL Server: 字段类型为 Image
    Oracle: 字段类型 Blob
    ...读写方式与 hch_45 相似:写:blobField:TBlobField;Query.Edit(); //Query1.Add();
    ...
    Query.FieldByName('FileName').Value:=ExtractFileName('文件名');
    blobField:=Query.FieldByName('Word') as TBlobField;
    blobField.LoadFromFile('文件名');
    ...
    Query.Post();读:
    blobField:TBlobField;
    filename:String;filename:=Query.FieldByName('FileName').Value;
    blobField:=Query.FieldByName('Word') as TBlobField;
    blobField.SaveToFrom(filename);ShellExecute(nil,'open',filename,nil,nil,SW_SHOW); //用 Word/Excel打开*一定要将原来的文件名记录下来(主要是需要用到原来文件名的后缀)