Mit Befehlen Ergebnismengen abrufen
Nach oben zu Befehlsobjekte verwenden
Im Gegensatz zu TADOQuery-Komponenten, bei denen unterschiedliche Methoden zur Ausführung verwendet werden, je nachdem, ob eine Ergebnismenge zurückgegeben wird oder nicht, verwendet TADOCommand in allen Fällen den Befehl Execute zum Ausführen des Befehls. Gibt der Befehl eine Ergebnismenge zurück, so gibt Execute eine Schnittstelle zum ADO-Objekt _RecordSet zurück.
Am praktischsten ist es, diese Schnittstelle der Eigenschaft RecordSet einer ADO-Datenmenge zuzuweisen.
Der Quelltext im folgenden Beispiel verwendet TADOCommand (ADOCommand1) zur Ausführung einer SELECT-Abfrage, die eine Ergebnismenge zurückgibt. Diese wird dann der Eigenschaft RecordSet einer TADODataSet-Komponente (ADODataSet1) zugewiesen.
with ADOCommand1 do begin
CommandText := 'SELECT Company, State ' +
'FROM customer ' +
'WHERE State = :StateParam';
CommandType := cmdText;
Parameters.ParamByName('StateParam').Value := 'HI';
ADODataSet1.Recordset := Execute;
end;
ADOCommand1->CommandText = "SELECT Company, State ";
ADOCommand1->CommandText += "FROM customer ";
ADOCommand1->CommandText += "WHERE State = :StateParam";
ADOCommand1->CommandType = cmdText;
ADOCommand1->Parameters->ParamByName("StateParam")->Value = "HI";
ADOCommand1->Recordset = ADOCommand1->Execute();
Sobald die Ergebnismenge der Eigenschaft RecordSet der ADO-Datenmenge zugewiesen wurde, wird die Datenmenge automatisch aktiviert, und die Daten stehen zur Verfügung.