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 :

PB "table ouverte"


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 43
    Par défaut PB "table ouverte"
    Voila, à un moment je fais une requéte grace à un TQUERY. Après cette requete, je veux utiliser le meme composant pour une autre requete mais agissant sur une autre base de donnée.
    Voici mon code:

    TGV->SQLDepartTrain->DatabaseName="Billetterie";
    TGV->SQLDepartTrain->Close();
    TGV->SQLDepartTrain->SQL->Clear();
    TGV->SQLDepartTrain->SQL->Add("Select GareDepart from TTrain where NumeroTrain= "+TGV->NmTrainAuto->Text+" ");
    TGV->SQLDepartTrain->Prepare();
    TGV->SQLDepartTrain->Open();


    TGV->SQLDepartTrain->Close();
    TGV->SQLDepartTrain->DatabaseName="EtatReseau";
    TGV->SQLDepartTrain->SQL->Clear();
    TGV->SQLDepartTrain->SQL->Add("Insert into Trains (Numero,Trajet) Values ("+TGV->NmTrainAuto->Text+","+TrainA.Trajet+") ");
    //TGV->SQLDepartTrain->Prepare();
    TGV->SQLDepartTrain->ExecSQL();


    Voila, pour le 1° changement de Database, ça marche nickel, pour le second, malgrès que je demande au TQUERY utilisé de se fermer, ça me met "impossible d'effectuer cette opération sur une table ouverte"...
    Une solution???

  2. #2
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 43
    Par défaut
    Bon me suis aperçu qu'en supprimant le TGV->SQLDepartTrain->Prepare(); du 1° changement de databaseName ça ne plante plus...
    C'est normal???

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    C++Builder prépare automatiquement une requête si elle est exécutée avant d'avoir été préparée au préalable. Après l'exécution, C++Builder annule la préparation de la requête. Lorsqu'une requête est destinée à être exécutée plusieurs fois, une application doit toujours préparer explicitement la requête pour éviter les préparations et les annulations de préparation multiples et inutiles.

    Etant donné que la préparation d'une requête consomme des ressources de base de données, il est souhaitable pour une application d'annuler la préparation d'une requête quand elle a fini de l'utiliser. L'annulation de la préparation d'une requête s'effectue à l'aide de la méthode UnPrepare.
    Je n'ai jamais noté de différences appréciable sur la méthode prépare, hormis sur les procédures stockées.

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 43
    Par défaut
    Ok merci beaucoup pour l'info!!!

Discussions similaires

  1. QGIS : lenteur pour afficher les listes des vues dans "Ajouter une table PostGIS"
    Par fafa63 dans le forum SIG : Système d'information Géographique
    Réponses: 2
    Dernier message: 11/07/2014, 19h04
  2. [RegEx] quote non ouverte ou non fermée
    Par guitz dans le forum Langage
    Réponses: 0
    Dernier message: 15/07/2012, 13h19

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