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