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 |