我想将Word文件存入到sql数据库中的某个字段中去,可以实现吗?如果可以实现,那么这个字段应该定义为什么类型呢?相反的,存入进去以后有如何才能调出来查看这个字段的内容呢?请指教,多谢了!

解决方案 »

  1.   

    转贴:
    procedure TForm1.Button1Click(Sender: TObject);
    {}var
      MS: TMemoryStream;
    begin
      RichEdit1.Font.Color := Clred;
      MS:=TMemoryStream.create;
      RichEdit1.Lines.LoadFromStream(MS);
      MS.Position:=0;
      ADOQuery1.Append;
      TBlobField(ADOQuery1.FieldbyName
        ('Doc')).LoadFromStream(MS);
      ADOQuery1.Post;
    end;  }  with ADOQuery1 do
      begin
        Edit;
        FieldByName('doc').AsString := RichEdit1.Text;
        Post;
      end;      function blobcontenttostring(const filename: string):string;
      begin
        with tfilestream.create(filename,fmopenread) do
          try
           setlength(Result,size);
           read(Pointer(Result)^,size);
         finally
           free;
         end;
      end;
    //保存字段
    var
      sFileName : String;
    begin
      RichEdit1.Font.Color := ClRed;
      RichEdit1.Lines.SaveToFile('C:\aaa.rtf');
      if (opendialog1.execute) then
      begin
        sFileName:=OpenDialog1.FileName;
        adoquery1.edit;
        adoquery1.fieldbyname('doc').asstring:=Blobcontenttostring(sFileName);
        adoquery1.post;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      MS: TStream;
    begin
      ADOQuery1.First;
      with ADOQuery1 do
       MS:=CreateBlobStream
        (FieldbyName('Doc'),bmRead);
        RichEdit2.Lines.LoadFromStream(MS);
      MS.Free;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      ADOQuery1.Next;
    end;