DBEXECUTE

Bemærk

I cloud-miljøer understøttes DBEXECUTE kun i kommercielle Infor-programmer. Du kan ikke bruge DBEXECUTE i brugerdefinerede eller udvidede programmer. Brug i stedet DBEXECUTEFIXED.

Dan læse værdier fra en relationsbaseret database ved at opdatere eksisterende værdier og indsætte nye værdier. DBEXECUTE arbejder direkte med databasen, ikke via en liste. Det betyder, at i modsætning til med RWDB-funktionen kan du indsætte rækker i databasen. Parametrene i DBEXECUTE-formlen er SQL-sætninger.

DBEXECUTE-funktionen understøtter fire tastekombinationer, som du kan bruge til at skrive 0, Null eller en tom streng til databasen:

  • DEL: Skriver 0
  • CTRL+DEL: Skriver Null
  • BACKSPACE: Skriver en tom streng ("")
  • CTRL+BACKSPACE: Skriver en tom streng ("")

Syntaks

DBEXECUTE-formlen har disse parametre.

  1. Databasenavn: Dette angiver den relationsbaserede dataforbindelse, der er defineret i d/EPM Administration.
  2. Vælg-sætning: Dette bruges til at hente data fra databasen. Det er en almindelig SQL SELECT-kommando. Når der angives en ny værdi, opdateres den eksisterende værdi. Hvis der ikke er nogen eksisterende værdi, bruges INSERT-sætningen. Hvis du vil bruge tilbageskrivning til databasen, skal forespørgslen referere til den primære nøgle. SQL SELECT kan returnere flere værdier fra en række, men DBEXECUTE 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.
  3. Indsæt-sætning: Dette angiver, hvordan nye data angives i databasen. Det er en SQL INSERT-standardkommando. Du kan bruge tegnet ? i INSERT-sætningen. Det repræsenterer den værdi, der sidst blev angivet af DBEXECUTE i den aktuelle celle.

Eksempel

I dette eksempel er produktid den primære nøgle.

=DBEXECUTE("data_connection", "SELECT productid,FROM products WHERE
		productid=123","INSERT INTO products VALUES(’123’,?)")

Vælg-sætningen udføres, hver gang DBEXECUTE-funktionen behandles. Hvis den f.eks. vises i en rapport, bruges som parameter i en anden formel, bruges i en handling osv. Sætningen INSERT udføres dog kun, når der angives en værdi i en celle, og værdien ikke findes i databasen. Denne funktion kan være praktisk, hvis du bruger en handling til at udføre DBEXECUTE og ønsker at indsætte data i databasen eller at udføre en anden SQL-kommando.

Eksempel

I dette eksempel er produktid den primære nøgle. Det produkt-id, der henvises til, findes i en rapportvariabel kaldet rv_prod.

=DBEXECUTE("data_connection", "SELECT productid, FROM products WHERE
		productid="&Reportvariables.rv_prod.text,"INSERT INTO products VALUES(’123’,?)")

DBEXECUTE i Handlinger

Du kan udføre en INSERT-sætning eller en anden SQL-kommando i en DBEXECUTE-formel, der udføres af en handling, ved at bruge INSERT-sætningen i stedet for SELECT-sætningen.

Eksempel

=DBEXECUTE("data_connection", "INSERT INTO products VALUES (’123’,’[a
		value]’)","")