DBEXECUTEFIXED

DBEXECUTEFIXED je alternativa funkce DBEXECUTE, která podporuje parametry. Na rozdíl od funkce DBEXECUTE ji lze použít v cloudu i v místním prostředí a ve vlastních i rozšířených aplikacích.

Příkaz SQL je považován za fixní text, a proto nemůže přímo odkazovat na proměnné.

Je-li příkaz v nechráněné buňce, můžete aktualizovat hodnotu, kterou vrací, ale na rozdíl od DBEXECUTE nelze přidávat nové řádky.

Poznámka

V názvech parametrů se rozlišují malá a velká písmena.

Syntaxe

Vzorec DBEXECUTEFIXED má tyto parametry.

  1. Alias: 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. Chcete-li povolit aktualizaci databáze, musí dotaz obsahovat primární klíč. Příkaz SQL SELECT může vrátit více hodnot z řádku, ale vzorec DBEXECUTEFIXED 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. U zpětného zápisu musí být buňka obsahující dotaz nechráněna.
  3. Hodnoty parametru: Můžete použít jednohodnotové a vícehodnotové parametry. V příkazech SQL se odkazuje na jednohodotové parametry pomocí funkce @[parametr_name]. Na vícehodnotové parametry se odkazuje pomocí funkce @@[parameter_name]. Hodnoty ve vícehodnotových parametrech musí být odděleny svislou čárou (|).
=DBEXECUTEFIXED("alias", "select_statement", {, "parameter"})

Názvy parametrů se automaticky přiřazují jako p1, p2 atd.

Příklad

V tomto příkladu vzorec vrátí název položky, kdy ID má hodnotu aktuálně uloženou v proměnné reportu rv_configs. items.ID je primární klíč.

=DBEXECUTEFIXED("configdb", "SELECT items.name,items.ID FROM items WHERE Id=@p1",ReportVariables.rv_configs.Text)

items.id je primární klíč. Pokud je vzorec nechráněná buňka a vrátí hodnotu, můžete hodnotu aktualizovat: v tomto příkladu název položky.

Poznámka

Vzhledem k tomu, že celý příkaz SQL je považován za text, není třeba řetězit hodnoty řetězce znaky &, jak je nutné ve vzorcích DBEXECUTE:

=DBEXECUTE("configdb", "SELECT items.name,items.ID FROM items WHERE Id="&ReportVariables.rv_configs.Text)
=DBEXECUTE("configdb", "SELECT items.ID,items.name FROM items WHERE name='"&ReportVariables.rv_name.Text&"'")

Syntaxe zřetězení se liší, protože v prvním příkladu je odkazovaná hodnota číselná a druhá je textová.