我想把RICHEDIT控件编辑过的内容保存到数据库里面,如何实现?

解决方案 »

  1.   

    那直接用数据感知控件dbrichedit不就行了-------------------------------------
    http://scsoft.agrie.com
      

  2.   

    用流或者用dbrichedit
    var
      StringStream : TstringStream;
      filestream : Tfilestream;
    begin
      StringStream := TstringStream.Create('');
      filestream := Tfilestream.Create('d:/d.doc',fmOpenRead);
      filestream.CopyFrom(filestream,filestream.Size)
      Query1.SQL.Clear;
      ADOQuery1.SQL.Add('Insert into mytable (image1)values(:image1)');
      ADOQuery1.Parameters.ParamByName('image1').LoadFromStream(StringStream,ftBlob);
      ADOQuery1.ExecSQL;
      freeandnil(StringStream);
      freeandnil(filestream);
    end;
      

  3.   

    如果从文件中往数据库写东东就用Stream,如果只是保存用户输入内容就用dbrichedit.
      

  4.   

    cdsgajxlp(起名很难)
    怎么从数据库里读出来,先是在richedit里?
      

  5.   


    显示内容
    procedure TForm1.btnShowClick(Sender: TObject);
    var
      sFileName: String;
      BS : TADOBlobStream;
    begin
      BS :=
    TADOBlobStream.Create(TBlobField(adodsBlobs.FieldByName('Blobs')),
    bmRead);
      try
        sFileName := ExtractFilePath(Application.ExeName)+'tmpBlob';
        sFileName := sFileName + '.' +
           adodsBlobs.FieldByName('Extension').AsString;
        BS.SaveToFile(sFileName);
        OleContainer1.CreateObjectFromFile(sFileName, False);
      finally // wrap up
        BS.Free;
      end;    // try/finally
    end;写入
    procedure TForm1.btnwirte(Sender: TObject);
    var
      sFileName : String;
      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;
    begin
      if (OpenDialog1.Execute)then
      begin
        sFileName := OpenDialog1.FileName;
        adodsBlobs.Edit;
        adodsBlobs.FieldByName('Blobs').AsString :=
           BlobContentToString(sFileName);
        adodsBlobs.Post;
      end;
    end;
      

  6.   

    由于这个是用复文本的,后台最好是用image类型,在读出来的时候也好一些
    写入代码:
          adotable1.FieldByName('FileName').SetFieldType(ftBlob);
          TBlobField(adotable1.FieldByName('FileName')).LoadFromFile('c:\aaa.doc');
    读出代码:
        cfile:= 'C:\bbb.doc';
        TBlobField(adotable1.FieldByName('FileName')).SaveToFile(cFile);