Mettre à jour, insérer et caractère ? dans DBEXECUTE
?
.Avec une table SQL vide appelée Articles, et deux colonnes : ID et nom. ID est la clé primaire.
La formule suivante est contenue dans une cellule non protégée :
=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")
En mode Affichage, spécifier 1 dans la cellule et appuyer sur Entrée.
Étant donné que la table est vide et ne contient pas d'ID avec la valeur 1, l'instruction Insertion est exécutée. L'instruction Insertion crée cette ligne dans la table :
Numéro de ligne | ID | Nom |
---|---|---|
1 | 1 | 1 |
Lorsqu'on entre 1, l'ID est spécifié. Le caractère ?
entraîne la saisie de cette valeur dans la colonne Nom.
Il faut alors spécifier 2 dans la cellule. Puisque l'ID 1 est présent, l'instruction Insertion n'est pas exécutée. En revanche, la ligne contenant l'ID 1 est mise à jour comme le montre ce tableau :
Numéro de ligne | ID | Nom |
---|---|---|
1 | 2 | 1 |
L'instruction Insertion n'est pas exécutée, la colonne Nom n'est pas mise à jour.
Il faut alors spécifier 3 dans la cellule. Comme l'ID 1 n'est pas présent, l'instruction Insertion est exécutée et une nouvelle ligne est ajoutée :
Numéro de ligne | ID | Nom |
---|---|---|
1 | 1 | 3 |
2 | 2 | 1 |
Les valeurs 1 et 3 résultent de cette partie de la formule : VALUES (1,?)
.
En spécifiant maintenant 4, l'ID 1 est à nouveau présent et la ligne contenant l'ID 1 est mise à jour.
Numéro de ligne | ID | Nom |
---|---|---|
1 | 2 | 1 |
2 | 4 | 3 |
Si on indique 5, une ligne supplémentaire est ajoutée :
Numéro de ligne | ID | Nom |
---|---|---|
1 | 1 | 5 |
2 | 2 | 1 |
3 | 4 | 3 |