DBEXECUTEFIXED

DBEXECUTEFIXED är ett alternativ till DBEXECUTE som stöder parametrar. Till skillnad från DBEXECUTE kan det användas i både moln- och lokala miljöer samt i anpassade eller utökade program.

SQL-satsen behandlas som fast text och kan därför inte referera till variabler direkt.

Om satsen är i en oskyddad cell kan du uppdatera värdet som den returnerar, men i motsats till DBEXECUTE kan du inte lägga till nya rader.

Obs!

Parameternamn är skiftlägeskänsliga.

Syntax

DBEXECUTEFIXED-formeln har dessa parametrar.

  1. Alias: Anger den relationsdatalänkning som definieras i d/EPM Administration.
  2. Select-sats: Används för att hämta data från databasen. Det är ett SELECT-kommando i standard-SQL. Frågan måste inkludera den primära nyckeln om du vill att databasen ska kunna uppdateras. SQL SELECT kan returnera flera värden från en rad men DBEXECUTEFIXED ignorerar alla utom det första. Om du vill returnera och återskriva ett värde som inte är den primära nyckeln måste du kontrollera att den primära nyckeln inte är det första värdet som krävs av satsen. För återskrivning måste cellen som innehåller frågan vara oskyddad.
  3. Parametervärden: Du kan använda parametrar med ett eller flera värden. Referera till enskilda värdeparametrar med @[parameternamn] i SQL-satser. Referera till flera värdeparametrar med @@[parameter_name]. Värden i flera värdeparametrar måste separeras med |-tecknet.
=DBEXECUTEFIXED("alias", "select_statement", {, "parameter"})

Parameternamn tilldelas automatiskt som p1, p2 osv.

Exempel

I det här exemplet returnerar formeln det artikelnamn där ID:t har det värde som för närvarande finns i rapportvariabeln rv_config. items.ID är primärnyckeln.

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

items.id är primärnyckeln. Om formeln finns i en oskyddad cell och returnerar ett värde kan du uppdatera värdet: i det här exemplet, artikelnamnet.

Obs!

Eftersom hela SQL-satsen behandlas som text finns det inget krav för att sammanfoga strängvärdena med &-tecknet, eftersom det är nödvändigt i följande DBEXECUTE-formler:

=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&"'")

Syntaxen för sammanfogningen skiljer sig åt eftersom det refererade värdet i det första exemplet är numeriskt och i det andra är det i textformat.