Var
    MS_Question:TMemoryStream;
    MS_Answer:TMemoryStream;
    QuestionID:string;
begin
    QuestionID:=Label_QuestionID.Caption;
    MS_Question:=TMemoryStream.Create;
    MS_Answer:=TMemoryStream.Create;
    OLE_Question.SaveToStream(MS_Question);
    OLE_Answer.SaveToStream(MS_Answer);
End;
我要将数据表中id为QuestionID的MS_Question、MS_Answer进行更新,不知道怎么做?

解决方案 »

  1.   

    先定位
      Query1.Close;
      Query1.Sql.text := 'select * from table where id = '''+QuestionID+'''';
      Query1.Open;修改
      TBlobField(Query1.FieldByName('MS_Question')).LoadFromStream(MS_Question);
      TBlobField(Query1.FieldByName('MS_Answer')).LoadFromStream(MS_Answer);
      

  2.   

    The following example copies the data in the Notes field of Table1 or SQLDataSet1 to the Res field of ClientDataSet1.
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Stream1: TBlobStream;
      Stream2: TStream;
    begin
      Stream1 := TBlobStream.Create(Table1Notes, bmRead);
      try
        ClientDataSet1.Edit;
        { here抯 a different way to create a blob stream } 
        Stream2 := ClientDataSet1.CreateBlobStream(ClientDataSet1.FieldByName('Res'), bmReadWrite);
        try
          Stream2.CopyFrom(Stream1, Stream1.Size);
          ClientDataSet1.Post;
        finally
          Stream2.Free;
        end;  finally
        Stream1.Free;
      end;
    end;