[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;
Das obige ist der detaillierte Inhalt vonSo speichern Sie Delta of Clientdataset mit Delphi in der Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!