DatabaseUpdate()
Syntaxe
Resultat = DatabaseUpdate(#BaseDeDonnees, Requete$)Description
Exécute une requête SQL de modification de la base de données. Elle ne renvoie aucun enregistrement.
Arguments
#BaseDeDonnees La base de données à utiliser. Requete$ La requête à exécuter.
Valeur de retour
Renvoie une valeur non nulle si la requête a réussi, zéro sinon (en raison d'une erreur SQL ou une requête mal formatée).
Remarques
Cette fonction est similaire à DatabaseQuery() mais sans affecter la fonction NextDatabaseRow(), il est donc possible d'utiliser cette commande tout en conservant les enregistrements obtenus par DatabaseQuery(). Par contre, il n'est pas possible d'effectuer des sélections ('SELECT' en SQL) ou d'autres types de requêtes qui renvoient des enregistrements, pour cela, utiliser DatabaseQuery().
Cette fonction est utile pour mettre à jour des enregistrements dans la base de données.
En cas d'erreur, le texte d'erreur peut être récupéré par DatabaseError().
La requête peut contenir des espaces réservés pour les variables de liaison. Ces variables doivent être définies avant d'appeler SetDatabaseString(), SetDatabaseLong() etc. Après l'exécution de la requête, les variables liées sont effacées et doivent être définies à nouveau pour de futurs appels. La syntaxe de spécification des variables liées à SQL dépend de la base de données. Voir le deuxième exemple ci-dessous.
Exemple
; D'abord, il faudra se connecter à une base de données qui contient une table 'employee' ; If DatabaseQuery(#BaseDeDonnees, "SELECT * FROM employee") ; Recupère tous les enregistrements de la table 'employee' While NextDatabaseRow(#BaseDeDonnees) ; Enumération des enregistrements ; Mise à jour du champ 'checked' pour chaque enregistrement, en assumant que le champ 'id' ; est le premier de la table 'employee' ; DatabaseUpdate("UPDATE employee SET checked=1 WHERE id="+GetDatabaseString(#BaseDeDonnees, 0)) Wend FinishDatabaseQuery(#BaseDeDonnees) EndIf
Exemple: Variables liées avec SQLite, MySQL et ODBC
; SQLite, MySQL et ODBC partagent la même syntaxe pour les variables de liaison, indiquées par le caractère "?" ; SetDatabaseString(#Database, 0, "test") If DatabaseQuery(#Database, "SELECT * FROM employee WHERE id=?") ; ... EndIf
Exemple: PostgreSQL
; PostgreSQL utilise une autre syntaxe dans la déclaration: $1, $2 .. pour indiquer le paramètre indéfini ; SetDatabaseString(#Database, 0, "test") If DatabaseQuery(#Database, "SELECT * FROM employee WHERE id=$1") ; ... EndIf
Voir aussi
DatabaseQuery() SetDatabaseString(), SetDatabaseLong(), SetDatabaseQuad(), SetDatabaseFloat(), SetDatabaseDouble(), SetDatabaseBlob(), SetDatabaseNull()
OS Supportés
Tous