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

C++Builder Discussion :

problème avec ADO


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Par défaut [Résolu] problème avec ADO
    Bonjour

    J’ai un petit soucis avec le composant ADO sous Borland C++ 6.0,

    Lorsque je poste un nouveau record via une commande SQL classique du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        AdoInfoQueryDS->Close();
        AdoInfoQueryDS ->SQL->Clear();
        AdoInfoQueryDS ->SQL->Add("INSERT INTO maDb ([client]) VALUE (:client)");
        AdoInfoQueryDS ->Parameters->ParamByName("client ")->Value = “Albert”;
        AdoInfoQueryDS ->Prepared=true;
        AdoInfoQueryDS ->ExecSQL();
    je constate que si je fais une requête via un autre query juste après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        AdoInfoQueryDS2>Close();
        AdoInfoQueryDS2->SQL->Clear();
        AdoInfoQueryDS2->SQL->Add("SELECT * from maDb");
        AdoInfoQueryDS2 ->Open();
    AdoInfoQueryDS2 ne contient pas le nouveau client « Albert » il faut attendre +- 3 secondes

    par contre si je reutilise le query utilisé pour poster alors j’ai le nouveau record
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        AdoInfoQueryDS ->Close();
        AdoInfoQueryDS ->SQL->Clear();
        AdoInfoQueryDS ->SQL->Add("SELECT * from maDb");
        AdoInfoQueryDS ->Open();
    contient albert instantanément après

    je crois comprendre qu’en fait AdoInfoQueryDS ->ExecSQL(); n’écrit pas instantanément dans la dataBase ?
    Comment puis-je faire pour lorsque je poste via un query, immédiatement après je peux être certain que je lirais la modif via un autre query ?


    Merci de votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Je ne sais pas si ça va résoudre quelque chose, mais tu peux rajouter une ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     AdoInfoQueryDS2>Close();
    AdoInfoQueryDS2->SQL->Clear();
    AdoInfoQueryDS2->SQL->Add("SELECT * from maDb");
    AdoInfoQueryDS2->Last();//Prend le dernier enregistrement
    AdoInfoQueryDS2 ->Open();
    Tiens nous au courant

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Par défaut
    merci

    mais ça ne marche pas, ça me renvoit au dernier record de la table avant modif et 2 à 3 secondes après ça marche


  4. #4
    Membre éclairé Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Par défaut
    Juste une suggestion au hazard, mais si tu enleve la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AdoInfoQueryDS ->Prepared=true;
    ca marche pas non plus?
    c'est juste une suggestion car la a part que ton serveur sql est du mal à ordonné ses requetes ou qu'il est du mal à faire le "comit" sur les "insert" je ne vois pas trop ton probleme

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Par défaut
    merci
    mais ça ne change rien
    en fait après avoir lu la doc ado je constate avec regret qu'ado ne travaille pas en directe sur la data base serveur même quand tu crois faire une requête sql en directe dessus mais sur une copie locale et met ensuite à jour tous les x milli secondes (dans mon cas +- 3 secondes) suivant une procédure interne (assez mal documenté d'ailleurs)
    pour travailler en directe faut utiliser le composant SQL classique

  6. #6
    Membre éclairé Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Par défaut
    Alors la jamais entendu parler d'une telle chose, si tu fais un "select" il rapatri les données pour les mettre dans ton query, mais je ne savais pas pour un "insert" par exemple, tu utilises quoi comme systeme de base de donnée?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Par défaut
    j'utilise "Microsoft.Jet.OLEDB.4.0"

    sinon mon problème résolu, j'ai dû réinsérer un composant en plus qui est ADO connection et le lier au query

    c'est certainement moi qui faisait une mauvaise analyse, faut dire qu'ado est nouveau pour moi

  8. #8
    Membre éclairé Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Par défaut
    Mais forcement si tu nous dis pas tous, on ne devine pas

    bon et bien tant mieux si ton probleme est résolu.
    Pense à mettre le tag "Résolu"

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

Discussions similaires

  1. Problème avec ADO
    Par colfire_dev dans le forum Bases de données
    Réponses: 5
    Dernier message: 27/12/2007, 19h43
  2. [D5] Problème avec ADO
    Par iam dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/08/2007, 18h51
  3. Problème avec ADO
    Par NoViceDel dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/05/2006, 16h03
  4. [SQL]Problème avec ADO - Order by
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/11/2005, 10h55
  5. Problème avec Ado, MySQL
    Par sylvain.g dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/06/2005, 10h45

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