Die Datenmengen auf dem Anwendungsserver überschreiben

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Der Quelldatenmenge Parameter übergeben


Die Client-Datenmengen, die einem bestimmten Datenzugriffsmechanismus zugeordnet sind, verwenden die Eigenschaften CommandText und CommandType, um die von ihnen dargestellten Daten anzugeben. Wird jedoch TClientDataSet verwendet, werden die Daten von der Quelldatenmenge, nicht von der Client-Datenmenge angegeben. In der Regel hat diese Quelldatenmenge eine Eigenschaft, welche eine SQL-Anweisung beinhaltet, mit der die Daten generiert werden, oder den Namen einer Datenbanktabelle oder einer Stored Procedure.

Falls es der Provider zulässt, kann TClientDataSet die Eigenschaft der Quelldatenmenge überschreiben, die angibt, welche Daten sie darstellt. Wenn es also der Provider erlaubt, ersetzt die Eigenschaft CommandText der Client-Datenmenge die Eigenschaft in der Datenmenge des Providers, die angibt, welche Daten sie darstellt. Auf diese Weise kann TClientDataSet dynamisch angeben, welche Daten es erhalten will.

Standardmäßig erlauben Provider-Komponenten den Client-Datenmengen nicht, den CommandText-Wert auf diese Weise zu verwenden. Um TClientDataSet zu erlauben, seine Eigenschaft CommandText zu verwenden, müssen Sie der Eigenschaft Options des Providers poAllowCommandText hinzufügen. Andernfalls wird der Wert von CommandText ignoriert.

Anmerkung:  Entfernen Sie niemals poAllowCommandText aus der Einstellung der Eigenschaft Options von TBDEClientDataSet oder TIBClientDataSet. Die Eigenschaft Options der Client-Datenmenge wird an den internen Provider weitergegeben, so dass die Client-Datenmenge durch Entfernen von poAllowCommandText daran gehindert wird, anzugeben, auf welche Daten sie zugreifen soll.

Die Client-Datenmenge sendet ihren CommandText-String zweimal an den Provider:

  • Wenn die Client-Datenmenge zum ersten Mal geöffnet wird. Nachdem sie das erste Datenpaket vom Provider empfangen hat, sendet die Client-Datenmenge CommandText nicht mehr, wenn nachfolgende Datenpakete abgerufen werden.
  • Wenn die Client-Datenmenge einen Execute-Befehl an den Provider sendet.

Um einen SQL-Befehl zu senden oder den Namen einer Tabelle oder einer Stored Procedure zu ändern, müssen Sie explizit die Schnittstelle IAppServer verwenden, die als Eigenschaft AppServer bereitgestellt wird. Diese Eigenschaft repräsentiert die Schnittstelle, über die die Client-Datenmenge mit ihrem Provider kommuniziert.

Siehe auch