var
i: Integer;
stream:Tmemorystream;
begin
inherited;
AdoConn.BeginTrans ;
try
if QryRemind.State in [dsInsert] then
Qry1.Post
else if Qry1.State in [dsEdit] then
begin
With Tadoquery.create(self) do
begin
Close;
SQL.Text := Qry1.SQL.Text ;
Open;
Edit;
For i:= 0 To Fields.Count -1 do
begin
if not Qry1.Fields[i].IsBlob then
begin
Fields[i].Value := Qry1.Fields[i].Value
end
else
begin
if Qry1.Fields[i].IsNull then
begin
TBlobField(Fields[i]).Clear ;
end
else
begin
stream:=tmemorystream.Create;
Try
TBlobField(Qry1.Fields[i]).SaveToStream(stream);
TBlobField(Fields[i]).LoadFromStream(stream);
stream.Clear ;
finally
FreeAndNil(stream);
end;
end;
end;
end;
Post;
Close;
if Qry1.State in [dsEdit,dsInsert] then Qry1.Cancel ;
end;
end;
if adoConn.InTransaction then adoConn.CommitTrans;
except
if adoConn.InTransaction then adoConn.RollbackTrans;
raise exception.Create('提交数据失败.');
end;
end;