DBEXECUTE

Hinweis

In Cloud-Umgebungen wird DBEXECUTE nur bei kommerziellen Infor-Anwendungen unterstützt. In benutzerdefinierten oder erweiterten Anwendungen kann DBEXECUTE nicht verwendet werden. Verwenden Sie stattdessen DBEXECUTEFIXED.

Sie können Werte aus einer relationalen Datenbank auslesen, vorhandene Werte aktualisieren und neue Werte einfügen. DBEXECUTE arbeitet direkt mit der Datenbank und nicht über eine Liste. Deshalb können Sie anders als bei der RWDB-Funktion Zeilen in die Datenbank einfügen. Die Parameter der DBEXECUTE-Formel sind SQL-Anweisungen.

Die DBEXECUTE-Funktion unterstützt vier Tastenkombinationen, mit denen Sie 0, einen Nullwert oder eine leere Zeichenfolge in die Datenbank schreiben können:

  • Entf: Schreibt 0
  • Strg+Entf: Schreibt Null
  • Rücktaste: Schreibt eine leere Zeichenfolge ("")
  • Strg+Rücktaste: Schreibt eine leere Zeichenfolge ("")

Syntax

Die DBEXECUTE-Formel hat folgende Parameter.

  1. Datenbankname: Dieser gibt die relationale Datenverbindung an, die in EPM Administration definiert ist.
  2. SELECT-Anweisung: Diese wird verwendet, um Daten aus der Datenbank abzurufen. Es handelt sich um einen SQL-SELECT-Standardbefehl. Wenn ein neuer Wert eingegeben wird, wird der vorhandene Wert aktualisiert. Wenn kein Wert vorhanden ist, wird die INSERT-Anweisung verwendet. Um in die Datenbank zurückzuschreiben, muss die Abfrage auf den Primärschlüssel verweisen. Der SQL-SELECT-Befehl kann mehrere Werte aus einer Zeile zurückgeben, allerdings ignoriert DBEXECUTE alle bis auf den ersten. Um also einen Wert zurückzugeben und zurückzuschreiben, der nicht der Primärschlüssel ist, stellen Sie sicher, dass der Primärschlüssel nicht der erste von der Anweisung angeforderten Wert ist.
  3. INSERT-Anweisung: Diese bestimmt, wie neue Daten in die Datenbank eingegeben werden sollen. Es handelt sich um einen SQL-INSERT-Standardbefehl. Sie können das Zeichen ? in der INSERT-Anweisung verwenden. Es repräsentiert den letzten Wert, der von DBEXECUTE in die aktuelle Zelle eingegeben wurde.

Beispiel

In diesem Beispiel ist die productid der Primärschlüssel.

=DBEXECUTE("data_connection", "SELECT productid,FROM products WHERE
		productid=123","INSERT INTO products VALUES(’123’,?)")

Die SELECT-Anweisung wird jedes Mal ausgeführt, wenn die Funktion DBEXECUTE verarbeitet wird. Sie wird also beispielsweise in einem Bericht angezeigt, als Parameter in einer anderen Formel oder in einer Aktion verwendet usw. Jedoch wird die INSERT-Anweisung nur ausgeführt, wenn ein Wert in eine Zelle eingegeben wird und der Wert nicht in der Datenbank vorhanden ist. Dieses Feature kann verwendet werden, wenn Sie eine Aktion verwenden, um DBEXECUTE auszuführen, und Sie Daten in die Datenbank einfügen möchten oder jeden anderen SQL-Befehl ausführen.

Beispiel

In diesem Beispiel ist die productid der Primärschlüssel. Die referenzierte Produkt-ID befindet sich in einer Berichtsvariablen namens rv_prod.

=DBEXECUTE("data_connection", "SELECT productid, FROM products WHERE
		productid="&Reportvariables.rv_prod.text,"INSERT INTO products VALUES(’123’,?)")

DBEXECUTE in Aktionen

Um eine INSERT-Anweisung oder einen anderen SQL-Befehl in einer DBEXECUTE-Formel auszuführen, die durch eine Aktion ausgeführt wird, verwenden Sie die Insert-Anweisung anstelle der Select-Anweisung.

Beispiel

=DBEXECUTE("data_connection", "INSERT INTO products VALUES (’123’,’[a
		value]’)","")