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 :

Paradox - table occupée


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut Paradox - table occupée
    Bonjour tout le monde !

    j'ai un p'tit soucis concernant des tables Paradox....

    le but de ma procédure : ajouter un champs dont j'ai la description à une table.
    je crée donc une table temporaire avec les bon champs, je fais unbatchmove pour récupérer les données dans cette table temporaire et ensuite je veux supprimer la table de base pour pouvoir renommer la table temp.

    PB : J'arrive pas à supprimer la table initiale, çàa me met que la table est occupée !

    j'ai tout tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                   dsTableBDD.DataSet.DisableControls;
                   tableBDD.Close;
                   tableBDD.Active:=false;
    rien n'y fait...

    est-ce que vous auriez une idée sur ce qui peut se passer et comment le contourner ???

    merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Personne n'a une idée ???

    j'ai testé autre chose encore, j'ai inversé les tables sur lesquelles pointent mes dataSource de manière à ce que la table utilisée soit la table Temp, le temps que je supprime la 1ère table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    tableBDD.Active:=false;
    tableBDD.TableName:=DBModule1.Temp.TableName;
     
    DBModule1.temp.Active:=false;
    DBModule1.temp.tableName:=nomTable;
    DBModule1.temp.DeleteTable;
     
    tableBDD.RenameTable(nomTable);
    tableBDD.Active:=true;
    ça m'a réglé le pb pour une table mais pas pour les autres

    j'y comprend rien du tout....

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bjr

    Je te suggere d'ajouter des champs a ta table en passant par
    une requette sql
    ALTER TABLE "Client.db" ADD "Nouv_Champ" CHAR(50)

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Function BDD_Ajouter_Champ(NomRep,NomTbl,NomChp,TypChp:String;Var Err_Ch:String):Boolean;
    Var Qry:TQuery;
    Begin
      Result := False;
      Err_Ch := '';
      Qry := TQuery.Create(Nil);
      Try  
        Qry.DataBaseName := NomRep;
        Qry.Sql.Text := 'Alter Table '+QuotedStr(NomTbl);
        Qry.Sql.Add('ADD '+NomChp+' '+TypChp);
        Try
          Qry.ExecSql;
          Result := True;
        Except
          Err_Ch := 'Exception = '+Exception(ExceptObject).Message;
        End;
      Finally
        Qry.Free;
      End;
     
      //Pour appeler la fonction tu peux faire un truc du genre
     procedure TForm1.BtAjtChpClick(Sender: TObject);
    Var Err_Ch:String;
    begin
      Table1.Close;
      If Not BDD_Ajouter_Champ(Table1.DataBaseName,Table1.TableName,'Chp_Ch','Char(20)',Err_Ch)
      Then Begin
        ShowMessage(Err_Ch);
        Exit;
      End;
      ShowMessage('Ok 1');
      If Not BDD_Ajouter_Champ(Table1.DataBaseName,Table1.TableName,'Chp_Int','Integer',Err_Ch)
      Then Begin
        ShowMessage(Err_Ch);
        Exit;
      End;
      ShowMessage('Ok 2');
    end;
    Pour connaitre les differents types possibles
    Dans l'aide tu cherche "Aide Sql Local" et "Alter"

    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    LE pb c'est que cette fonctionnalité n'est pas disponible dans le sql fournit avec les tables paradox...

    je suis donc obligé de le faire tel que décrit dans mon premier message...

  5. #5
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Citation Envoyé par lol_adele
    LE pb c'est que cette fonctionnalité n'est pas disponible dans le sql fournit avec les tables paradox...

    je suis donc obligé de le faire tel que décrit dans mon premier message...
    Non tu te trompes la fonctionnalité est toujours disponible pour les tables paradox.

Discussions similaires

  1. Log de transactions Paradox tables
    Par sniperpro dans le forum Paradox
    Réponses: 1
    Dernier message: 31/10/2013, 19h45
  2. [Paradox] Tables endommagées
    Par sniperpro dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/10/2010, 23h59
  3. Batchmove et tables occupées
    Par gentilman_delphi dans le forum Composants VCL
    Réponses: 0
    Dernier message: 28/01/2008, 14h12
  4. Paradox Table pleine
    Par jcharles dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/06/2005, 18h06
  5. Table occupée et index illisible
    Par stampe dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/03/2005, 19h55

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