Aktualizovat, vložit a znak ? ve funkci DBEXECUTE
? .
Předpokládejme, že máte prázdnou tabulku SQL s názcem Položky, která má dva sloupce: ID a Název. ID je primární klíč.
Tento vzorec máte v nechráněné buňce:
=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")
V režimu Zobrazení zadáte do buňky hodnotu 1 a stisknete klávesu Enter.
Protože tabulka je prázdná a neobsahuje ID s hodnotou 1, provede se příkaz Vložit. Příkaz Vložit vytvoří tento řádek v tabulce:
| Číslo řádku | ID | Název |
|---|---|---|
| 1 | 1 | 1 |
Zadáním hodnoty 1 jste určili ID. Znak ? způsobí, že tato hodnota bude zadána do sloupce Název.
Nyní zadejte do buňky hodnotu 2. Vzhledem k tomu, že ID 1 je přítomno, příkaz Vložit se neprovede. Místo toho je aktualizován řádek obsahující ID 1 podle toho, jak je zobrazen v této tabulce:
| Číslo řádku | ID | Název |
|---|---|---|
| 1 | 2 | 1 |
Vzhledem k tomu, že příkaz Vložit není proveden, sloupec Název není aktualizován.
Nyní zadejte do buňky hodnotu 3. Vzhledem k tomu, že ID 1 není k dispozici, provede se příkaz Vložit a přidá se nový řádek:
| Číslo řádku | ID | Název |
|---|---|---|
| 1 | 1 | 3 |
| 2 | 2 | 1 |
Hodnoty 1 a 3 jsou výsledkem této části vzorce: VALUES (1,?).
Pokud nyní zadáte hodnotu 4, ID 1 je znovu přítomno a řádek obsahující ID 1 se aktualizuje.
| Číslo řádku | ID | Název |
|---|---|---|
| 1 | 2 | 1 |
| 2 | 4 | 3 |
Zadáte-li hodnotu 5, bude přidán další řádek:
| Číslo řádku | ID | Název |
|---|---|---|
| 1 | 1 | 5 |
| 2 | 2 | 1 |
| 3 | 4 | 3 |