richEdit插入图片和表格可以实现,现在是要把这些内容保存起来,比如以流的形式保存到数据库里,
但是重新读出来打开就没有了那图片和表格,请问如何处理这样的问题?谢谢!

解决方案 »

  1.   

    procedure Tmain.SpeedButton19Click(Sender: TObject);
    begin
      if curauthorid<>curuserid then exit;
      RxRichEdit1.Lines.SaveToStream(buff);
      EnCompressStream(buff);
      with DataModule1 do
      begin
        adoconnection1.Connected:=true;
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        if newlog
         then
           begin
             sqlstr:='Insert Into log(doc,departid,createdate,updatedate,readcnt,updatecnt,authorid,title,brief,text,private) '
             +'Values(:doc,:departid,:createdate,:updatedate,:readcnt,:updatecnt,:authorid,:title,:brief,:text,:private)';
             ADOQuery1.SQL.Add(sqlstr);
             ADOQuery1.Parameters.ParamByName('doc').LoadFromStream(buff,ftBlob);
             ADOQuery1.Parameters.ParamByName('departid').Value:=curuserdepartid;
             ADOQuery1.Parameters.ParamByName('createdate').Value:=now;
             ADOQuery1.Parameters.ParamByName('updatedate').Value:=now;
             ADOQuery1.Parameters.ParamByName('readcnt').Value:=curreadcnt;
             ADOQuery1.Parameters.ParamByName('updatecnt').Value:=curupdatecnt;
             ADOQuery1.Parameters.ParamByName('authorid').Value:=curauthorid;
             ADOQuery1.Parameters.ParamByName('title').Value:=curtitle;
             ADOQuery1.Parameters.ParamByName('brief').Value:=curbrief;
             ADOQuery1.Parameters.ParamByName('text').Value:=curtext;
             ADOQuery1.Parameters.ParamByName('private').Value:=privatelog;
             ADOQuery1.ExecSQL;
             buff.Clear ;
           end
         else
           begin
             sqlstr:='update log set doc=:doc,updatedate=:updatedate,updatecnt=:updatecnt,title=:title,brief=:brief,text=:text,private=:private '
             +'where logid=:logid';
             ADOQuery1.SQL.Add(sqlstr);
             ADOQuery1.Parameters.ParamByName('doc').LoadFromStream(buff,ftBlob);
             ADOQuery1.Parameters.ParamByName('updatedate').Value:=now;
             ADOQuery1.Parameters.ParamByName('updatecnt').Value:=curupdatecnt+1;
             ADOQuery1.Parameters.ParamByName('title').Value:=curtitle;
             ADOQuery1.Parameters.ParamByName('brief').Value:=curbrief;
             curtext:=RxRIchEdit1.Text;
             ADOQuery1.Parameters.ParamByName('text').Value:=curtext;
             ADOQuery1.Parameters.ParamByName('private').Value:=privatelog;
             ADOQuery1.Parameters.ParamByName('logid').Value:=curlogid;
             ADOQuery1.ExecSQL;
             buff.Clear ;
           end;
        adoconnection1.Connected:=false;
      end;
      RxrichEdit1.Modified:=false;
      UpdateModifyStatus;
    end;
    procedure Tmain.SpeedButton8Click(Sender: TObject);
    begin
      with DataModule1 do
      begin
        adoconnection1.Connected:=true;
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        sqlstr:='select  * from log where logid='''
          +trim(listView2.Selected.SubItems[7])+'''';
        ADOQuery1.SQL.Add(sqlstr);
        ADOQuery1.Open;
        TBlobField(ADOQuery1.FieldByName('doc')).SaveToStream(buff);
        curlogid:=trim(ADOQuery1.FieldByName('logid').asstring);
        curauthorid:=trim(ADOQuery1.FieldByName('authorid').asstring);
        curuserdepartid:=ADOQuery1.FieldByName('departid').asinteger;
        curtitle:=trim(ADOQuery1.FieldByName('title').asstring);
        curbrief:=trim(ADOQuery1.FieldByName('brief').asstring);
        newlog:=false;
        privatelog:=ADOQuery1.FieldByName('private').asboolean;
        adoconnection1.Connected:=false;
        buff.Position :=0;
        if buff.Size>0 then
        begin
          RxRichEdit1.Clear;
          DeCompressStream(buff);
          RXRichEdit1.Lines.LoadFromStream(buff);
        end;
      end;
      buff.Clear;
      RxrichEdit1.Modified:=false;
      UpdateModifyStatus;
      RzPageControl1.Pages[0].Caption:=curtitle;
    end;
      

  2.   

    建议楼主用TRichView的一组控件,能轻松实现插入表格,bmp,jpg,动态gif,实现表格的拖动等功能,源码中有Demohttp://www.ccrun.com/view.asp?id=142
      

  3.   

    我用的wwRichEdit,我同样是采用流的方式保存,读出只需一句:wwRichEdit1.Text:=ADOQuery1.FieldValues['保存的字段名'];
      

  4.   

    用DBRichEdit直接挂到数据库字段上就可以做到的.
      

  5.   

    我主要用cxRichEdit或cxDBRichEdit控件现在就图片的存储和编辑的问题没有解决,大家看看还有没有更好的方法啊?谢谢!
      

  6.   

    谢谢pengxuan 谢谢所有回帖的朋友!就要过新年啦!
    大家都怎么过新年啊!
    2008啊!2007年很是繁忙的一年,也是很郁闷的一年,也充满着希望的一年!