Die Aktion "DB ausführen"

www.altova.com Alle erweitern/reduzieren Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Datenbanken >

Die Aktion "DB ausführen"

Die Aktion "DB ausführen" (siehe Abbildung unten) bietet zahlreiche Möglichkeiten zum Bearbeiten von DB-Daten. Sie können mit Hilfe von SQL-Anweisungen Daten einfügen, löschen, aktualisieren und speichern. Auf diese Art können Sie bei jedem Ereignis, das während des Lösungsablaufs eintritt, die Möglichkeiten von SQL nutzen.

MTDDBExecuteInsert01

In diesem Abschnitt wird beschrieben, wie Sie Daten mit Hilfe von "DB ausführen" einfügen, aktualisieren, löschen und speichern. Der Befehl zum Bearbeiten von DB-Daten wird in der SQL-Anweisung der Aktion definiert (siehe Abbildung oben). Eine ausführliche Beschreibung der Einstellungen der Aktion "DB ausführen" finden Sie im Abschnitt Seitendesign > Aktionen > Datenbank > DB ausführen. Beachten Sie, dass Sie mit Hilfe der SQL-Anweisung von "DB ausführen" zusätzliche Flexibilität haben, da sie darin Parameter verwenden können. Die Werte dieser Parameter werden mit Hilfe von XPath-Ausdrücken generiert. Nähere Informationen dazu finden Sie im Abschnitt DB ausführen-Aktion.

 

Wenn die DB-Daten auf derselben Seite, auf der die Aktion definiert ist, angezeigt werden, sollten Sie eine "Neu laden"-Aktion hinzufügen, damit die Anzeige aktualisiert wird, sodass die geänderten DB-Daten zu sehen sind (siehe Abbildung oben). In der Abbildung oben ist die $DB1-Struktur der Root-Node der Datenbanktabelle OfficeSales_DB. Nachdem OfficeSales_DB mit Hilfe der INSERT-Anweisung bearbeitet wurde, wird die $DB1-Struktur auf der Designseite neu geladen, sodass Sie die in der DB vorgenommenen Änderungen sofort sehen.

 

 

INSERT: Einfügen von Zeilen mit "DB ausführen" und SQL

Mit Hilfe der INSERT-Anweisung von SQL können Sie Zeilen in eine Datenbanktabelle einfügen. Die INSERT INTO-Anweisung dient zu Einfügen von Zeilen mit bestimmten Werten, während mit der INSERT SELECT-Anweisung das Ergebnis einer SELECT-Anweisung in eine Tabelle eingefügt wird. Sie können zum Einfügen von Zeilen in eine Tabelle auch andere SQL-Anweisungen wie z.B. SELECT INTO verwenden.

MTDDBExecuteInsert01

Click to expand/collapseEinfügen eine einzigen kompletten Zeile oder eine einzigen Teils einer Zeile

Verwenden Sie INSERT INTO, um eine einzige Zeile in eine Tabelle einzufügen. Die SQL-Syntax lautet:

 

INSERT INTO DestinationTable (ID, City) VALUES ('ID-Value', 'City-Value');

 

Mit der obigen Anweisung wird eine Zeile bestehend aus zwei Spalten (ID und City) in die Tabelle DestinationTable eingefügt. Beachten Sie die folgenden Punkte:

 

Nur die in der SQL-Anweisung definierten Spalten werden in die neue Zeile eingefügt (im Beispiel oben ID, City).
Um eine komplette Zeile (die alle Tabellenspalten enthält) einzufügen, definieren Sie alle Tabellenspalten in der SQL-Anweisung.
Die Spaltennamen und -werte in der SQL-Anweisung müssen einander in ihrer Position entsprechen. Diese Spaltenreihenfolge muss nicht der Spaltenreihenfolge in der DB-Tabelle entsprechen, d.h. wenn das Layout der DB-Tabelle später geändert wird, bleibt die SQL-Anweisung dennoch korrekt und muss nicht dem geänderten Layout entsprechend aktualisiert werden.
Es muss für jeden Spaltennamen ein Spaltenwert vorhanden sein. Andernfalls wird ein Fehler generiert und die Zeile wird nicht eingefügt.
Wenn in der SQL-Anweisung eine Spalte ausgelassen wird, so muss für diese Spalte in der DB definiert sein, dass NULL Werte (eine leere Spalte) zulässig sind oder es muss dafür ein Standardwert definiert sein. Andernfalls wird ein Fehler generiert und die Zeile wird nicht eingefügt.
Um mehrere Zeilen einzufügen, definieren Sie mehrere INSERT INTO-Anweisungen.

 

 

Click to expand/collapseEinfügen des Ergebnisses einer SELECT-Anweisung

Verwenden Sie INSERT SELECT, um das Ergebnis einer SELECT-Anweisung in eine Tabelle einzufügen. Normalerweise wird INSERT SELECT verwendet, um eine Gruppe von Zeilen aus einer Tabelle in eine andere zu kopieren. Die SQL-Syntax lautet:

 

INSERT SELECT Offices (ID, City, Country) SELECT ('ID', 'Stadt', 'Land'FROM Offices_DE ;

 

Mit der obigen Anweisung werden alle Zeilen der Tabelle Offices_DE in die Tabelle Offices eingefügt. Beachten Sie die folgenden Punkte:

 

Es werden nur die in der SQL-Anweisung definierten Spalten in die neue Zeile eingefügt (im Beispiel oben ID, City, Country).
Die von der SELECT-Anweisung zurückgegebenen Spalten werden in die entsprechenden Spalten der Zieltabelle eingefügt. Die Spaltenentsprechungen werden anhand ihrer Position ermittelt. So entspricht im Beispiel oben die Spalte Stadt an der Position 2 in der SELECT Anweisung der Spalte City an der Position 2 in der Definition der Zieltabelle. Die Namen der Spalten in den beiden Definitionen müssen nicht übereinstimmen. Die Entsprechung wird durch die Position festgelegt.
Sie können die eingefügten Daten in der SELECT-Anweisung mit Hilfe einer WHERE-Klausel filtern.

 

 

 

UPDATE: Aktualisieren von Zeilen mit "DB ausführen" und SQL

Mit Hilfe der UPDATE-Anweisung von SQL können Sie Zeilen in einer Datenbanktabelle aktualisieren. Die UPDATE besteht aus drei Teilen:

 

dem Namen der zu aktualisierenden DB-Tabelle
den Namen der zu aktualisierenden Spalten und ihren Werten
einer WHERE-Klausel zum Filtern der zu aktualisierenden Zeilen

 

Hier sehen Sie ein Beispiel für eine SQL UPDATE-Anweisung:

 

UPDATE [AltovaMobile_Offices]

SET    [Office]  = 'New York',

       [Contact= 'Altova Johnson'

WHERE  [id]      = 11;

 

Mit dieser Anweisung wird die Zeile mit der id=11 von z.B. Office='USA' zu Office='New York' und Contact=NULL zu Contact='Altova Johnson'. In der Abbildung unten sehen Sie dieses Beispiel für eine UPDATE-Anweisung in den SQL-Anweisungseinstellungen einer DB ausführen-Aktion.

MTDDBExecuteUpdate01

Beachten Sie die folgenden Punkte:

 

Die zu aktualisierenden Spalten sind durch ihre Name=Wert-Kombination angegeben, wobei jede Name=Wert-Kombination durch ein Komma von der nächsten getrennt ist. Nach der letzten Name=Wert-Kombination steht kein Komma.
Alle zu aktualisierenden Spalten werden in einer einzigen SET-Klausel definiert.
Der Wert einer Spalte kann durch Setzen auf NULL gelöscht werden, vorausgesetzt NULL-Werte sind in dieser Spalte zulässig. Beispiel: SET [Contact] = NULL.

 

Mit der Aktion "Neu laden" wird die geänderte DB sofort nach ihrer Änderung neu geladen. Ohne die Aktion "Neu laden" werden die Änderungen auf der Seite nicht angezeigt.

 

 

DELETE: Löschen von Zeilen mit "DB ausführen" und SQL

Mit Hilfe der DELETE-Anweisung von SQL können Sie folgende Löschungen vornehmen:

 

Löschen bestimmter Zeilen einer Tabelle (durch Definition einer WHERE-Klausel zum Auswählen der zu löschenden Zeilen)
Löschen aller Zeilen einer Tabelle (durch Weglassen der WHERE-Klausel)

 

Hier sehen Sie ein Beispiel für eine SQL DELETE-Anweisung:

 

DELETE FROM [AltovaMobile_Offices]

WHERE [id= 11;

 

Mit der obigen SQL DELETE-Anweisung wird die Zeile mit der id=11 gelöscht. Wenn die WHERE-Klausel weggelassen wird, werden alle Zeilen der Tabelle AltovaMobile_Offices gelöscht.

MTDDBExecuteDelete01

Eine SQL DELETE-Anweisung in der Aktion "DB ausführen"

Mit der Aktion "Neu laden" wird die geänderte DB sofort nach ihrer Änderung neu geladen. Ohne die Aktion "Neu laden" werden die Änderungen auf der Seite nicht angezeigt.

 

 


© 2019 Altova GmbH