怎么使用delphi將Clientdataset的Delta保存到數據庫中
發表時間:2023-07-19 來源:明輝站整理相關軟件相關文章人氣:
[摘要][delphi]view plain copy//ATableName-表名, AKeyField-主鍵,多個主鍵用;隔開,如 ;pid;times; from:unit HlsImplBase;...
[delphi]
view plain copy
//ATableName-表名, AKeyField-主鍵,多個主鍵用;隔開,如 ;pid;times; from:unit HlsImplBase;
[delphi] view plain copy
function THlsImplBase.UpdateTableData(ATableName, AKeyField: AnsiString; var AData: Variant): Boolean;
var
LSql: string;
LDataSet: TDataSet;
LProvider: TProvider;
LErrCount: Integer;
I: Integer;
begin
Result := False;
if ATableName = '' then Exit;
if AKeyField = '' then Exit;
LSql := 'select * from ' + ATableName + ' where 1 = 2';
LDataSet := CreateDataSet(LSql);
if not Assigned(LDataSet) then Exit;
LProvider := TProvider.Create(nil);
LProvider.UpdateMode := upWhereKeyOnly;
LProvider.DataSet := LDataSet;
AKeyField := LowerCase(AKeyField);
for I := 0 to LDataSet.FieldCount - 1 do
begin
if (LowerCase(LDataSet.Fields[I].FieldName) = AKeyField) or
(Pos(';' + LowerCase(LDataSet.Fields[I].FieldName) + ';', AKeyField) > 0) then
LDataSet.Fields[I].ProviderFlags := LDataSet.Fields[I].ProviderFlags + [pfInKey]
else
LDataSet.Fields[I].ProviderFlags := [];
end;
try
try
LProvider.ApplyUpdates(AData, -1, LErrCount);
except
end;
Result := LErrCount = 0;
finally
LDataSet.Free;
LProvider.Free;
end;
end;
以上就是如何使用delphi將Clientdataset的Delta保存到數據庫中的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。