Aggiorna, Inserisci e il carattere ? in DBEXECUTE

In questo argomento viene descritto l'aggiornamento e il comportamento di inserimento di DBEXECUTE e l'utilizzo del carattere ? .

Si supponga di avere una tabella SQL vuota denominata Elementi, con due colonne: ID e nome. ID è la chiave primaria.

Questa formula è presente in una cella non protetta:

=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")

In Modalità di visualizzazione è possibile specificare 1 nella cella e premere Invio.

Poiché la tabella è vuota e non contiene un ID con il valore 1, viene eseguita l'istruzione Inserisci. L'istruzione Inserisci consente di creare questa riga nella tabella:

Numero riga ID Nome
1 1 1

Se si immette 1, viene specificato l'ID. Il carattere ? indica che questo valore deve essere inserito nella colonna Nome.

Specificare 2 nella cella. Poiché è presente l'ID 1, l'istruzione Inserisci non viene eseguita. La riga contenente l'ID 1 viene invece aggiornata come mostrato nella tabella riportata di seguito:

Numero riga ID Nome
1 2 1

Poiché l'istruzione Inserisci non viene eseguita, la colonna Nome non viene aggiornata.

Specificare quindi 3 nella cella. Poiché l'ID 1 non è presente, viene eseguita l'istruzione Inserisci e viene aggiunta una nuova riga:

Numero riga ID Nome
1 1 3
2 2 1

I valori 1 e 3 risultano dalla seguente parte della formula: VALUES (1,?).

Se quindi si specifica 4, l'ID 1 comparirà di nuovo e la riga contenente l'ID 1 verrà aggiornata.

Numero riga ID Nome
1 2 1
2 4 3

Se si specifica 5 viene aggiunta un'altra riga:

Numero riga ID Nome
1 1 5
2 2 1
3 4 3