Uppdatera, infoga och ?- tecknet i DBEXECUTE
?- tecknet.Anta att du har en tom SQL-tabell med två kolumner: ID och benämning ID är primärnyckeln.
Du har följande formel i en oskyddad cell:
=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")
I visningsläge anger du 1 i cellen och trycker på Retur.
Eftersom tabellen är tom och inte innehåller ett ID med värdet 1 körs satsen INSERT. Satsen INSERT skapar följande rad i tabellen:
| Radnummer | ID | Namn |
|---|---|---|
| 1 | 1 | 1 |
Genom att ange 1 har du angett ID:t. Tecknet ? innebär att det här värdet anges i kolumnen Namn.
Du anger nu 2 i cellen. Eftersom ID 1 finns körs inte satsen INSERT. Istället uppdateras den rad som innehåller ID 1 enligt följande tabell:
| Radnummer | ID | Namn |
|---|---|---|
| 1 | 2 | 1 |
Eftersom satsen INSERT inte körs uppdateras inte namnkolumnen.
Nu anger du 3 i cellen. Eftersom ID 1 inte finns körs satsen INSERT och en ny rad läggs till:
| Radnummer | ID | Namn |
|---|---|---|
| 1 | 1 | 3 |
| 2 | 2 | 1 |
Värdena 1 och 3 resulterar från denna del av formeln: VÄRDEN (1,?).
Om du nu anger 4 uppdateras ID 1 igen och raden med ID 1 uppdateras.
| Radnummer | ID | Namn |
|---|---|---|
| 1 | 2 | 1 |
| 2 | 4 | 3 |
Om du anger 5 läggs ytterligare en rad till:
| Radnummer | ID | Namn |
|---|---|---|
| 1 | 1 | 5 |
| 2 | 2 | 1 |
| 3 | 4 | 3 |