使用云露客户端的架构,通过TApplyUpdateFDdata可以通过数据流的方式向后台提交数据集。 不管是单表保存还是多表保存,都可以调用该类,现在本篇将简单介绍单表保存。在介绍该类之前,先介绍 TApplyUpdataList 这个结构体
type
TApplyUpdataList = record
sDBname, sParam, ProviderFlags: string; //sDBName 数据库名 sParam 参数入参 可以为空 ProviderFlags 字段是否保存 可以为空
ApplyType: string; //'0':正常保存 '1':ExecSql '2':OpenSQL
FDData: OleVariant; //当 ApplyType不为0时,FDData是一个SQL语句,为0时,则AppType是FDQUERY的Data
end;
通过本结构体,可以将多个数据集一起提交给TApplyUpdateFDdata方法,自动实现保存。
var
Data1: OleVariant;
rt: Integer;
aArrList :array [0..0] of TApplyUpdataList;
FSaveList :TApplyUpdateFDdata;
begin
inherited;
if not FDQuery2.Active then
begin
ErrorBox('请先查询!') ;
exit;
end;
FSaveList:=TApplyUpdateFDdata.Create;
try
Data1 := FSaveList.Data(FDQuery2);
aArrList[0].sDBname:= 'HY_DT'; //数据库名
aArrList[0].ApplyType:='0'; //更新方式
aArrList[0].sParam:=''; //如果是SQL 语句,那么可以提供入参,参考查询界面的入参。
aArrList[0].ProviderFlags:=''; //不保存的字段。
aArrList[0].FDData:= Data1; //数据流
FSaveList.Url := FSYSINFO.sURL;
rt := FSaveList.SaveData(aArrList);
if rt<>0 then
begin
ErrorBox(FSaveList.GetErrorInfo);
exit;
end
else
begin
FDQuery2.CommitUpdates;
MsBox('保存成功!');
end;
finally
FSaveList.Free;
end;
多表以此类推,将数组的长度更改成你需要的长度,就能实现多表保存。