Einzelnen Beitrag anzeigen

FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#11

AW: SQLite - Insert / Update beschleunigen

  Alt 6. Jul 2011, 08:13
Ein Refactoring könnte sinnvoll sein, hinterher sollte das so aussehen:

Delphi-Quellcode:
StartTransaction;
Try
  PerformDataUpdate;
  CommitTransaction;
Except
  On E:Exception Do Begin
    RollbackTransaction;
    HandleException(E);
  End
End;
Und z.B.
Delphi-Quellcode:
Procedure PerformDataUpdate;
Var
  i : Integer;

Begin
  For i:=0 to X-1 Do
    PerformSingleRecordUpdate(Data[i]);
End;
und
Delphi-Quellcode:
Procedure PerformSingleRecordUpdate(aRecord : TMyData);
Begin
  If RecordExists(aRecord) then
    PerformSQLUpdate(aRecord)
  Else
    PerformSQLInsert(aRecord);
End;
Delphi-Quellcode:
Function RecordExists (aREcord : TMyData) : Boolean;
Begin
  Result := PerformSQLSelect('Select * from MyDatable Where PKField = '+aRecord.PkField).RecordsAffected > 0;
End;
usw.
PS: Wie machst Du das eigentlich mit gelöschten Daten?
Das Bild hängt schief.

Geändert von FredlFesl ( 6. Jul 2011 um 08:16 Uhr)
  Mit Zitat antworten Zitat