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 :

[ADO] Erreur sur modification


Sujet :

Bases de données Delphi

  1. #1
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut [ADO] Erreur sur modification
    Hello

    J'ai un problème lors de l'exécution d'une requête 'UPDATE' avec mon composant TQDOQuery ...

    La sélection marche sans problèmes, mais lorsque je fais un 'UPDATE', ça me ressort cette erreur à l'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ---------------------------
    Debugger Exception Notification
    ---------------------------
    Project PDBCopy.exe raised exception class EOleException with message 'Le fournisseur actuel ne prend pas en charge les jeux d'enregistrements multiples renvoyés à partir d'une exécution simple'. Process stopped. Use Step or Run to continue.
    Puis ensuite ceci comme message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ---------------------------
    Debugger Exception Notification
    ---------------------------
    Project PDBCopy.exe raised exception class EDatabaseError with message 'ADOQuery: CommandText does not return a result set'. Process stopped. Use Step or Run to continue.
    J'ai essayé de regarder du côté des curseurs, mais j'ai pas trouvé de solution (domaine qui reste très flou ... !).

    Une aide

    [EDIT]
    C'est avec une base Interbase !
    [/EDIT]
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Tu peux nous montrer ta requête Update ainsi que la façon dont tu l'appelles.

    @+ Claudius

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Il serait bien de voir ton code, car les messages de ce style ne permettent pas de donner une réponse toute faite pour corriger le problème.
    Autant le deuxieme message est une consequence du premier.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Effectivement !!

    Le voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    with DMDB.ADOQuery do
            begin
              //Récupération de la prochaine clé de la table 'CALIBRES'
              SQL.Clear;
              SQL.Add('SELECT TABLE_KEY FROM KEYS WHERE TABLE_NAME = ''CALIBRES'';');
              Open;
              pk := Fields[0].AsInteger + 1;
              //Modification de la prochaine clé de la table 'CALIBRES' dans la
              //table 'KEYS'
              SQL.Clear;
              SQL.Add('UPDATE KEYS SET TABLE_KEY = ' + IntToStr(pk) + 'WHERE TABLE_NAME = ''CALIBRES'';');
              Open;
              //Insertion du records avec la nouvelle clé et les valeurs du fichier
              SQL.Clear;
              SQL.Add('INSERT INTO CALIBRES (PK_CALIBRE, NOM_CALIBRE, FREQUENCE_CALIBRE, ANGLE_CALIBRE) VALUES (' + IntToStr(pk) + ', '+ Records[0] + ', ' + Records[1] + ', ' + Records[2] + ');');
            end;
    C'est au moment de la requête UPDATE que les messages d'erreurs posté plus haut apparaîssent ... !
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Si les requêtes Select s'ouvre avec un Open, il faut utiliser un ExecSQL pour les requêtes de mises à jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        ...
        //Modification de la prochaine clé de la table 'CALIBRES' dans la
        //table 'KEYS'
        SQL.Clear;
        SQL.Add('UPDATE KEYS SET TABLE_KEY = ' + IntToStr(pk) + 'WHERE TABLE_NAME = ''CALIBRES'';');
        ExecSQL;
        ...
    @+ Claudius

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Remarques supplémentaires :

    - Tu ne fermes pas tes requetes , je ne suis pas sûr que cela soit de bonne augure pour la suite des requetes.
    - Il te manque un ExecSQL pour la requete INSERT.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par Malatar
    - Tu ne fermes pas tes requetes , je ne suis pas sûr que cela soit de bonne augure pour la suite des requetes.
    +1

  8. #8
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Ok merci c'est tip top comme ça, ça marche !
    Citation Envoyé par Malatar
    ...
    - Tu ne fermes pas tes requetes , je ne suis pas sûr que cela soit de bonne augure pour la suite des requetes.
    A quel moment puis-je fermer la requête ? Est-ce que juste après le 'Open' ou le 'ExecSQL' c'est bon ? Est-ce deux fonctions bloquantes ?
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

  9. #9
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par femtosa
    A quel moment puis-je fermer la requête ? Est-ce que juste après le 'Open' ou le 'ExecSQL' c'est bon ?
    En fait c'est surtout avant le SQL.Clear.

    @+ Claudius

  10. #10
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Citation Envoyé par Cl@udius
    En fait c'est surtout avant le SQL.Clear.
    Ok merci à vous deux !
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/08/2010, 16h31
  2. [Base de donnée] erreur sur la modification du mot passe de listener oracle9i
    Par menoran dans le forum C++Builder
    Réponses: 0
    Dernier message: 09/06/2010, 18h50
  3. [Toutes versions] Erreur 13 sur modifications propriétés de démarrage
    Par Invité dans le forum Access
    Réponses: 2
    Dernier message: 19/06/2009, 11h58
  4. Réponses: 2
    Dernier message: 13/12/2006, 13h58
  5. erreur sur modification de la source d'un état
    Par Lou Pitchoun dans le forum Access
    Réponses: 1
    Dernier message: 07/10/2005, 11h38

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