DBEXECUTE

Poznámka

Vzorec DBEXECUTE je podporován pouze v místních prostředích a v komerčních aplikacích Infor v cloudových prostředích. Ve vlastních reportech v cloudu Infor je podporován pouze vzorec DBEXECUTEFIXED.

Je možné číst hodnoty z relační databáze, aktualizovat stávající hodnoty a vkládat nové hodnoty. Funkce DBEXECUTE pracuje přímo s databází, ne tedy prostřednictvím seznamu. Na rozdíl od vzorce RWDB tedy můžete vkládat do databáze řádky. Parametry vzorce DBEXECUTE jsou příkazy SQL.

Funkce DBEXECUTE podporuje čtyři kombinace kláves, pomocí nichž můžete do databáze zapsat hodnotu 0, Null nebo prázdný řetězec:

  • DEL: Zapíše hodnotu 0
  • CTRL+DEL: Zapíše hodnotu Null
  • BACKSPACE: Zapíše prázdný řetězec ("")
  • CTRL+BACKSPACE: Zapíše prázdný řetězec ("")

Syntaxe

Vzorec DBEXECUTE má tyto parametry.

  1. Název databáze: Tato hodnota udává relační datové propojení, které definuje d/EPM Administration.
  2. Příkaz výběru: Tato možnost se využívá k získání dat z databáze. Jedná se o standardní příkaz SQL SELECT. Když je zadána nová hodnota, stávající hodnota se aktualizuje. Pokud neexistuje žádná hodnota, použije se příkaz INSERT. Za účelem zpětného zápisu do databáze musí dotaz odkazovat na primární klíč. Příkaz SQL SELECT může vrátit více hodnot z řádku, ale vzorec DBEXECUTE ignoruje všechny hodnoty kromě první. Chcete-li tedy vrátit a zpětně zapsat, hodnotu, která není primárním klíčem, nesmí být primární klíč není první hodnotou požadovanou příkazem.
  3. Příkaz vložení: Tento příkaz určuje, jak se do databáze zadávají nová data. Jedná se o standardní příkaz SQL INSERT. V příkazu INSERT můžete použít znak ? . Představuje hodnotu, která byla naposledy zadána vzorcem DBEXECUTE do aktuální buňky.

Příklad

V tomto příkladu je primárním klíčem productid.

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

Příkaz výběru se provede pokaždé, když se zpracuje funkce DBEXECUTE. Pokud se například zobrazuje v reportu, používá se jako parametr v libovolném jiném vzorci, používá se v rámci akce atd. Příkaz INSERT se však provede pouze, pokud je hodnota zadána do buňky a hodnota neexistuje v databázi. Tuto funkci lze využít, pokud spouštíte funkci DBEXECUTE akcí a chcete vložit data do databáze nebo provést jiný příkaz SQL.

Příklad

V tomto příkladu je primárním klíčem productid. ID odkazovaného produktu je uloženo v proměnné reportu s názvem rv_prod.

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

DBEXECUTE v akcích

Chcete-li provést příkaz INSERT nebo jiný příkaz SQL ve vzorci DBEXECUTE, který se provádí akcí, použijte příkaz vložení namísto příkazu výběru.

Příklad

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