Befehlsparameter verarbeiten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Befehlsobjekte verwenden


Es gibt zwei Möglichkeiten, wie ein TADOCommand-Objekt Parameter verwenden kann:

  • In der Eigenschaft CommandText kann eine Abfrage angegeben sein, die Parameter verwendet. Das Arbeiten mit parametrisierten Abfragen in TADOCommand erfolgt analog zur Verwendung einer parametrisierten Abfrage in einer ADO-Datenmenge.
  • In der Eigenschaft CommandText kann eine Stored Procedure angegeben sein, die Parameter verwendet. Parameter für Stored Procedures funktionieren mit TADOCommand genauso wie bei ADO-Datenmengen.

Beim Arbeiten mit TADOCommand gibt es zwei Möglichkeiten, Parameter anzugeben: Entweder stellen Sie diese beim Aufrufen der Methode Execute zur Verfügung, oder Sie geben diese vorab über die Eigenschaft Parameters an.

Die Methode Execute ist überladen. Dies bedeutet, dass Versionen vorhanden sind, die eine Menge von Parameterwerten als Variant-Array akzeptieren. Dies ist hilfreich, wenn Sie Parameterwerte schnell angeben möchten, ohne den Aufwand zu treiben, der beim Definieren der Eigenschaft Parameters erforderlich wäre:



 ADOCommand1.Execute(VarArrayOf([Edit1.Text, Date]));



 Variant Values[2];
 Values[0] = Edit1->Text;
 Values[1] = Date();
 ADOCommand1.Execute(VarArrayOf(Values,1));



Wenn Sie Stored Procedures verwenden, die Ausgabeparameter zurückgeben, müssen Sie allerdings doch die Eigenschaft Parameters verwenden. Selbst wenn Sie die Ausgabeparameter nicht lesen müssen, ist die Verwendung der Eigenschaft Parameters sinnvoll, weil Sie mit damit Parameter beim Entwurf der Anwendung angeben können und die Eigenschaften für TADOCommand genauso festlegen können wie die Parameter für Datenmengen.

Beim Arbeiten mit der Eigenschaft CommandText wird die Eigenschaft Parameters automatisch aktualisiert, sodass sie die Parameter widerspiegelt, die in der Abfrage bzw. Stored Procedure verwendet werden. Zur Entwurfszeit können Sie zum Zugriff auf Parameter den Parametereditor aufrufen, indem Sie im Objektinspektor auf die Ellipsen-Schaltfläche (...) neben der Eigenschaft Parameters klicken. Zur Laufzeit werden die Werte für die einzelnen Parameter über die Eigenschaften und Methoden von TParameter gesetzt (bzw. abgerufen).



 with ADOCommand1 do begin
   CommandText := 'INSERT INTO Talley ' +
     '(Counter) ' +
     'VALUES (:NewValueParam)';
   CommandType := cmdText;
   Parameters.ParamByName("NewValueParam").Value := 57;
   Execute
 end;



 ADOCommand1->CommandText = "INSERT INTO Talley ";
 ADOCommand1->CommandText += "(Counter) ";
 ADOCommand1->CommandText += "VALUES (:NewValueParam)";
 ADOCommand1->CommandType = cmdText;
 ADOCommand1->Parameters->ParamByName("NewValueParam")->Value = 57;
 ADOCommand1->Execute()



Siehe auch