Einzelnen Beitrag anzeigen

pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
305 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Effiziente SELECT Abfrage

  Alt 29. Jul 2009, 18:47
Zitat von mkinzler:
Ja, da bei prepared Statement zu einem nur die Parameter übertragen werden und zudem das Parsen, Planbilden usw. entfällt
Wie sollte man dann folgenden Code am besten umbauen (Beispiel eines Insert-Statement)? Bisher haben wir das SQL Statement komplett übergeben und ausserhalb dieser Funktion als String zusammengesetzt:
Delphi-Quellcode:
function TmyADOFunctions.ADOInsertIntoDB(a_SQLStatement: string): TMyADOResultStruct;
var
  myADOResultStruct : TMyADOResultStruct;
  lCounter : integer;
begin
  assert(true = Prod_Conn_CorrectConnected);
  myADOResultStruct := TMyADOResultStruct.Create; // init

  try
    ADOCommand1.Connection.BeginTrans;
    ADOCommand1.CommandType := cmdText;
    ADOCommand1.CommandText := a_SQLStatement;
    ADOCommand1.Connection.Execute(a_SQLStatement, lCounter);
    myADOResultStruct.counter := lCounter;
    ADOCommand1.Connection.CommitTrans;
    myADOResultStruct.status := true;

  except
    // wenn Fehler abbrechen...
    on E: Exception do begin
      ADOCommand1.Connection.RollbackTrans;
      myADOResultStruct.status := false;
      myADOResultStruct.exception := E;
      myADOResultStruct.exceptionTxt := E.Message;
    end;
  end; // try-except
  Result := myADOResultStruct;
end;
Danke+Gruß,
Christoph
  Mit Zitat antworten Zitat