Die Parametersubstitution in SQL-Aktualisierungsanweisungen verstehen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Aktualisierungen mit der BDE zwischenspeichern - Index

Hinweis: Die Borland Database Engine (BDE) ist veraltet und wird nicht mehr weiterentwickelt. Die BDE wird Unicode beispielsweise nie unterstützen. Sie sollten mit der BDE keine neuen Entwicklungen vornehmen. Überprüfen Sie, ob Sie Ihre vorhandenen Datenbankanwendungen nicht von der BDE nach dbExpress migrieren können.

SQL-Aktualisierungsanweisungen verwenden eine spezielle Form der Parametersubstitution, die Ihnen ermöglicht, alte oder neue Feldwerte in Datensatzaktualisierungen zu substituieren. Wenn der UpdateSQL-Editor seine Anweisungen erzeugt, stellt er fest, welche Feldwerte verwendet werden sollen. Wenn Sie die SQL-Aktualisierungsanweisungen schreiben, geben Sie die zu verwendenden Feldwerte an.

Wenn der Parametername mit einem Spaltennamen in der Tabelle übereinstimmt, wird der neue Wert im Feld der zwischengespeicherten Aktualisierung für den Datensatz automatisch als Wert für den Parameter verwendet. Wenn der Parametername mit einem Spaltennamen überstimmt, dem der String "OLD_" vorangestellt ist, wird der alte Wert für das Feld verwendet. In der folgenden SQL-Aktualisierungsanweisung beispielsweise wird der Parameter :LastName automatisch mit dem neuen Feldwert der zwischengespeicherten Aktualisierung für den eingefügten Datensatz gefüllt.

INSERT INTO Names
(LastName, FirstName, Address, City, State, Zip)
VALUES (:LastName, :FirstName, :Address, :City, :State, :Zip)

Neue Feldwerte werden normalerweise in den Anweisungen InsertSQL und ModifySQL verwendet. In einer Aktualisierung für einen geänderten Datensatz wird von der UPDATE-Anweisung der neue Feldwert aus dem Aktualisierungszwischenspeicher verwendet, um den alten Wert in der aktualisierten Basistabelle zu ersetzen.

Bei einem gelöschten Datensatz gibt es keine neuen Werte, deshalb verwendet die Eigenschaft DeleteSQL die Syntax ":OLD_FieldName". Alte Feldwerte werden ebenfalls normalerweise in der WHERE-Klausel der SQL-Anweisung für eine Aktualisierung zum Ändern oder Löschen verwendet, um festzustellen, welcher Datensatz aktualisiert oder gelöscht werden soll.

In der WHERE-Klausel der SQL-Aktualisierungsanweisungen UPDATE oder DELETE geben Sie mindestens die Mindestanzahl der Parameter an, um den Datensatz in der Datentabelle eindeutig zu identifizieren, der mit den zwischengespeicherten Daten aktualisiert werden soll. In einer Kundenliste beispielsweise ist es unter Umständen nicht ausreichend, nur den Nachnamen des Kunden anzugeben, um den Datensatz in der Basistabelle eindeutig zu identifizieren; es könnte mehrere Datensätze geben, für die "Smith" als Nachname eingetragen ist. Wenn Sie jedoch Parameter für den Nachnamen, den Vornamen und die Telefonnummer angeben, könnte das eine ausreichend unterscheidende Kombination darstellen. Noch besser wäre ein eindeutiger Feldwert wie etwa eine Kundennummer.

Hinweis: Wenn Sie SQL-Anweisungen mit Parametern erstellen, die nicht auf die bearbeiteten oder ursprünglichen Feldwerte verweisen, weiß das Aktualisierungsobjekt nicht, wie es ihre Werte binden soll. Sie können das jedoch manuell erledigen, indem Sie die Query-Eigenschaft des Aktualisierungsobjekts verwenden.

Siehe auch