DBEXECUTEFIXED
DBEXECUTEFIXED er et alternativ til DBEXECUTE, der understøtter parametre. I modsætning til DBEXECUTE kan den bruges både i cloud-miljøer og lokale miljøer og i brugerdefinerede eller udvidede programmer.
SQL-sætningen behandles som fast tekst og kan derfor ikke referere direkte til variabler.
Hvis sætningen er i en ubeskyttet celle, kan du opdatere den værdi, den returnerer, men i modsætning til DBEXECUTE kan du ikke tilføje nye rækker.
Parameternavne skelner mellem store og små bogstaver.
Syntaks
DBEXECUTEFIXED-formlen har disse parametre.
- Alias: Dette angiver den relationsbaserede dataforbindelse, der er defineret i d/EPM Administration.
- Vælg-sætning: Dette bruges til at hente data fra databasen. Det er en almindelig SQL SELECT-kommando. Hvis databasen skal kunne opdateres, skal forespørgslen inkludere den primære nøgle. SQL SELECT kan returnere flere værdier fra en række, men DBEXECUTEFIXED ignorerer alt andet end den første værdi. Det betyder, at hvis du vil returnere og bruge tilbageskrivning af en værdi, som ikke er den primære nøgle, skal du sikre dig, at den primære nøgle ikke er den første værdi, der anmodes om i sætningen. Hvis du vil bruge tilbageskrivning, skal den celle, der indeholder forespørgslen, være ubeskyttet.
- Parameterværdier: Du kan bruge parametre med en enkelt værdi og med flere værdier. I SQL-sætninger refererer du til enkeltværdiparametre med
@[parameter_name]
. Du referer til flerværdiparametre med@@[parameter_name]
. Værdier i flere parametre med flere værdier skal adskilles af pipe-tegnet(|)
.
=DBEXECUTEFIXED("alias", "select_statement", {, "parameter"})
Parameternavne tildeles automatisk som p1,, p2 osv.
Eksempel
I dette eksempel returnerer formlen det elementnavn, hvor id'et har den værdi, der aktuelt findes i rapportvariablen rv_config. items.ID
er den primære nøgle.
=DBEXECUTEFIXED("configdb", "SELECT items.name,items.ID FROM items WHERE Id=@p1",ReportVariables.rv_configs.Text)
items.id
er den primære nøgle. Hvis formlen er i en ubeskyttet celle og returnerer en værdi, kan du opdatere værdien: I dette eksempel er det elementnavnet.
Fordi hele SQL-sætningen behandles som tekst, er der ikke noget krav om at sammenkæde strengværdierne med tegnet &
, som det kræves i disse 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&"'")
Syntaksen for sammenkædningen er forskellig, fordi der i det første eksempel refereres til numeriske værdier, og det andet til tekst.