[HELP-URGENT] "Cannot perform this operation on an open dataset" * Mer
Neopheus
Messages postés21Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention25 novembre 2005
-
4 mai 2003 à 13:39
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
4 mai 2003 à 23:14
Bonjour à Tous,
Je suis en train de programmer une application marchant en réseau à l'aide de bases MySQL.
Tout marche nickel sauf l'envoie de requêtes (ce qui est assez gênant :cry: ) qui m'affiche une erreur : "Cannot perform this operation on an open dataset"
Voici le code qui fait chier :
DataModuleMain.SQLQuery.Active := False;
DataModuleMain.SQLQuery.Close;
DataModuleMain.SQLQuery.SQL.Clear;
DataModuleMain.SQLQuery.SQL.Add('SELECT numero,Initiales,Clients FROM Clients ORDER BY numero');
DataModuleMain.SQLQuery.Active := True;
DataModuleMain.SQLQuery.Open;
DataModuleMain.SQLQuery.ExecSQL;
Mettre la propriété Active d'une requête à True revient exactement à la même chose que d'appeler la méthode Open.
Deuxièmement : une requête renvoyant un ensemble de données doit être appelée par Open et non pas pas un ExecSql. ExecSql doit employé quand on utilise insert, delete ou autres requêtes SQL ne renvoyant pas de données.
En résumé :
DataModuleMain.SQLQuery.Open;
suffit !
Ca ne déclenche pas d'erreur, mais ça ne fait pas "propre" non plus au début de ton code : mettre Active à False revient au même que d'appelr la méthode Close. Faut faire un choix.
May Delphi be with you