DBEXECUTE
DBEXECUTE støttes kun i lokale miljøer og i Infor kommersielle applikasjoner i skymiljøer. Kun DBEXECUTEFIXED støttes i egendefinerte rapporter i Infor-skyen.
Du kan lese verdier fra en relasjonsdatabase, oppdatere eksisterende verdier og sette inn nye verdier. DBEXECUTE arbeider direkte med databasen, ikke gjennom en liste. Med andre ord, i motsetning til RWDB-funksjonen kan du sette inn rader i databasen. Parameterne for DBEXECUTE-formelen er SQL-uttrykk.
DBEXECUTE-funksjonen støtter fire tastekombinasjoner som du kan bruke for å skrive 0, tom eller en tom streng i databasen med:
- DEL: Skriver 0
- CTRL+DEL: Skriver null
- BACKSPACE: Skriver en tom streng ("")
- CTRL+BACKSPACE: Skriver en tom streng ("")
Syntaks
DBEXECUTE-formelen har disse parameterne.
- Databasenavn: Dette angir relasjonsdatatilkoblingen som defineres i d/EPM Administration.
- Velg uttrykk: Dette brukes til å hente data fra databasen. Den er en standard SQL SELECT-kommando. Når en ny verdi angis, oppdateres den eksisterende verdien. Hvis det ikke finnes noen verdi, brukes INSERT-setningen. For å skrive tilbake til databasen, må spørringen referere til primærnøkkelen. SQL SELECT kan returnere flere verdier fra en rad, men DBEXECUTE ignorerer alle unntatt den første. For å returnere og tilbakeskrive en verdi som ikke er primærnøkkelen, må du sørge for at primærnøkkelen ikke er den første verdien som blir forespurt av setningen.
- Sett inn uttrykk: Dette angir hvordan nye data blir lagt inn i databasen. Det er en standard SQL-kommando. Du kan bruke
?
-tegnet i INSERT-setningen. Det representerer verdien som sist ble skrevet inn i den gjeldende cellen av DBEXECUTE.
Eksempel
I dette eksemplet er produktid
primærnøkkelen.
=DBEXECUTE("data_connection", "SELECT productid,FROM products WHERE
productid=123","INSERT INTO products VALUES(’123’,?)")
Valget utføres hver gang DBEXECUTE-funksjonen behandles. Dersom det for eksempel vises i en rapport, når det brukes som en parameter i en annen formel, brukes i en handling osv. Men INSERT-uttrykket utføres kun når en verdi skrives inn i en celle og verdien ikke finnes i databasen. Denne funksjonen kan brukes hvis du bruker en handling til å utføre DBEXECUTE og ønsker å sette inn data i databasen (eller utføre en annen SQL-kommando).
Eksempel
I dette eksemplet er produktid
primærnøkkelen. Referert produkt-ID finnes i en rapportvariabel med navnet rv_prod.
=DBEXECUTE("data_connection", "SELECT productid, FROM products WHERE
productid="&Reportvariables.rv_prod.text,"INSERT INTO products VALUES(’123’,?)")
DBEXECUTE i handlinger
For å utføre et INSERT-uttrykk (eller hvilken som helst annen SQL-kommando) i en DBEXECUTE-formel som utføres av en handling, bruker du insert-uttrykket i stedet for select-uttrykket.
Eksempel
=DBEXECUTE("data_connection", "INSERT INTO products VALUES (’123’,’[a
value]’)","")