DBEXECUTE

Merk

I skymiljøer støttes DBEXECUTE kun i Infor kommersielle applikasjoner. Du kan ikke bruke DBEXECUTE i egendefinerte eller utvidede applikasjoner. Bruk heller DBEXECUTEFIXED.

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]’)","")