IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Zeos + MySQL : CanNotOpenResultSet


Sujet :

Bases de données Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Zeos + MySQL : CanNotOpenResultSet
    Bonjour à tous, et d'hors et déjà merci à tous ceux qui vont avoir la gentillesse de se pencher sur mon problème.
    Je ne suis pas un as de la programmation, j'essaye d'apprendre par moi meme petit à petit, donc merci de votre indulgence.

    Mon problème vient d'une requète SQL, sous DELPHI.
    J'utilise les composant zeos 6.6.0, Delphi 7, et Mysql 5.0.27.

    J'ai un composant TZConnexion, placé dans un module de donnée appelé DataModule1, bien relié à ma base de donnée et plusieurs requetes du genre SELECT * FROM table qui fonctionnent. Par contre, en essayant de créer une requette pour supprimer une ligne de ma table, j'obtient le message d'erreur suivant : "CanNotOpenResultSet"

    ma table s'appelle clients

    Voici la requete SQL, placée dans un TZQuery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE from clients Where clients.dénomination = :nom
    puis mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var nom : String;
     
     nom := Grille.Cells[0,Grille.Row];    (le parametre nom est pris dans une TStringGrid);
      DataModule1.QuerySupprimerClient.Active := false;
      DataModule1.QuerySupprimerClient.ParamByName('nom').Value := nom;
      DataModule1.QuerySupprimerClient.Active := True;
      DataModule1.TableClients.Refresh;
    Merci

  2. #2
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut
    C'est normal un DELETE UPDATE ou INSERT ne retournent pas de résultats d'ou le message : CanNotOpenResultSet.
    S'il y a une méthode ExecSQL dans les Composants Zeos ça sera parfait.
    mais assure toi qu'il n'y a pas de datasource lié à ton query sinon tu aura le même message.
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse JustMe

    En effet j'ai trouvé un composant TZUpdateSQL dans la palette zeos, et d'après ce que j'ai pu lire sur plusieurs forums, c'est celui ci qu'il faut utiliser pour faire un DELETE, UPDATE ou INSERT sur la Table.

    Par contre, je n'ai pas trouvé comment utiliser ce composant, donc si quelqu'un avait un exemple concret, ou un lien sur le sujet, je suis preneur !

  4. #4
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    L'utilisation de TZUpdateSQL est identique à celle de TUpdateSQL en standard dans Delphi et documenté dans l'aide de Delphi ou dans la Faq de ce site.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Voila mon problème est résolu, merci pour votre aide.

    Pour info, et si un jour quelqu'un se pose la meme question que moi, je poste la façon dont j'ai procédé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    clientasupprimer := Grille.Cells[0,Grille.Row];    {le parametre nom est pris dans une TStringGrid};
    DataModule1.QuerySupprimerClient.Close;
      DataModule1.QuerySupprimerClient.SQL.Clear;
      DataModule1.QuerySupprimerClient.SQL.Add('DELETE FROM clients WHERE Nom = :nom');
      DataModule1.QuerySupprimerClient.ParamByName('nom').Value := clientasupprimer;
      DataModule1.QuerySupprimerClient.ExecSQL;

Discussions similaires

  1. [Lazarus] Lazarus 0.9.30 - ZEOS 6.6.6 - MySQL 5
    Par inforock dans le forum Lazarus
    Réponses: 8
    Dernier message: 26/11/2012, 21h50
  2. [Lazarus] Problème de connexion Mysql avec Zeos
    Par Jon Shannow dans le forum Lazarus
    Réponses: 2
    Dernier message: 22/10/2012, 12h29
  3. [Lazarus] Lazarus, Zeos, MySql et les champs autoincrémentés
    Par tintinux dans le forum Lazarus
    Réponses: 16
    Dernier message: 23/05/2010, 14h04
  4. Composants ZeOS et transaction (MySQL)
    Par Bloon dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/01/2008, 21h29
  5. [D 2005][MySQL][Zeos] ResultSet
    Par aragom dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/08/2006, 23h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo