DBEXECUTE

Merk

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.

  1. Databasenavn: Dette angir relasjonsdatatilkoblingen som defineres i d/EPM Administration.
  2. 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.
  3. 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]’)","")