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 :

erreur la table est occupée


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 118
    Points : 39
    Points
    39
    Par défaut erreur la table est occupée
    Bonjour a tous,
    je travaille sous delphi 6, avec base de données dbaseIII, lors de la fermeture de mon application j le message d'erreur table occupée, bien que j bien fermer toute lmes tables,
    je travaille aussi avec des requete, lors de la creation je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    qmat.SQL.Clear;
    Qmat.DatabaseName:='paie';
    Qmat.Active:=false;
    qmat.SQL.Add('select a.matricule, b.nom');
    qmat.SQL.Add('from fig b, nouv_sal a');
    qmat.SQL.Add('where a.matricule=b.mat');
    Qmat.ExecSQL;
    Qmat.Active:=true;
    DMat.Dataset:=Qmat;
    et lors de la fermeture de la fiche je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    qmat.Active:=false;
    qmat.SQL.Clear;
    qmat.Close;
    qmat.Free;
    que faire pour remedier a se genre de message de table occupée
    merci d'avance

  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
    Bonjour Colombe

    Juste quelques remarques:

    Pour une requête sélection (SELECT ... FROM ...), on ouvre la requête avec un Open (ou un Active := True). A l'inverse pour fermer, un Close (ou Active := False).
    Pour une requête action (UPDATE, INSERT ou DELETE), on utilise ExecSQL.

    Le code devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    with Qmat do
    begin
      Active := False;    // ou Close;
      SQL.Clear;
      DatabaseName := 'paie';
     
      SQL.Add('select a.matricule, b.nom');
      SQL.Add('from fig b, nouv_sal a');
      SQL.Add('where a.matricule=b.mat');
      Active := True;   // ou Open;
    end;
    DMat.Dataset := Qmat;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Qmat.Active := False;  // ou Close
    Qmat.Free;
    Maintenant ton problème de table occupée ne vient pas forcement de ça, mais un Open au lieu d'un ExecSQL sera déjà mieux.

    [edit]
    Utilise plutôt un INNER JOIN pour définir tes jointures.

    @+ Claudius

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 118
    Points : 39
    Points
    39
    Par défaut erreur table occupée
    Merci Cl@udius
    Mon probleme de table occupée est résolu, l'erreur c'etais Excecsql
    vous avez raison pour un simple select il faut travailler avec open et close ou active a true ou a faulse.
    j enlevais execsql et c reglé
    merci beaucoup pour votre aide.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/07/2008, 16h47
  2. savoir si une table est masquée ou pas
    Par scully2501 dans le forum Access
    Réponses: 13
    Dernier message: 22/09/2005, 12h19
  3. erreur : la table n'existe pas !!!
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/06/2005, 14h17
  4. Tester si une table est vide
    Par rsc dans le forum SQL
    Réponses: 2
    Dernier message: 01/07/2004, 16h25
  5. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17

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