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 :

PB pour une Base Paradox


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 16
    Points : 12
    Points
    12
    Par défaut PB pour une Base Paradox
    bonjour a tous,
    voila j'utilise une base Paradox sous delphi 6 entreprise le probleme que j'ai est que lorsque la base devient grosse (le nombre d'enregistrements dépassent 20 000) j'ai des caracteres ASCII a la place des enregistrement et quelque fois je pert completement la base de données. le second PB que j'ai est que j'ai des enregistrement perdus sans les effacer par programme
    comment faire pour régler tous ça

  2. #2
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    As tu essayé de Réindexer la bdd ?

    Edit : voir fonction : DbiRegenIndexes de Bde.pas.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  3. #3
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Comme le dit Harry, il semblerait que ta table soit mal en point.

    Je ne comprend pas.

    "J'ai des car. ASCII à la place des enreg., je perds la BD"
    Des index sont peut etre cassés.
    tu peux éventuellemnent t'en apercevoir, en affichant la totalité de ta table dans un DBGrid, avec successivement tous les index, et en parcourant du 1er au dernier les enreg. Si tu as un erreur, c'est ca...

    Parfois le meilleur moyen, et de recopier tes enreg dans une table vide de même structure, la reconstruction des index est ainsi 'propre'.
    Si une erreur de lecture survient de la table source, essaye du supprimer tous les index par fichiers (*.px,*xg*,*.yg*). C'est pas grave, il seront reconstruits dans la table dest.

    Verifie aussi la taille des cluster de ta table.
    Mais 20000 enreg, car reste peu, même si c'est du paradox, avec des gros enreg et avec plusieurs index.

    Je te conseille de te procurer des outils pour gérer ta base, style, vérification des index, re-indexation, recopie des données dans structure propre etc...

    Bon courage
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  4. #4
    Membre actif

    Profil pro
    Personnel
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Points : 210
    Points
    210
    Par défaut
    Salut,
    Je te conseille de faire des backups avec un TBachmove et 2 TTables, avec:
    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
     
      object bmSave: TBatchMove
        Destination = tableSave
        Source = tableACopier
        Left = 408
        Top = 80
      end
     
      object tableSave: TTable
        DatabaseName = 'Alias'
        Exclusive = True
        TableName = 'Sauvegarde.DB'
        UpdateMode = upWhereKeyOnly
        Left = 64
        Top = 80
      end
      object tableACopier: TTable
        DatabaseName = 'Alias'
        Exclusive = True
        TableName = 'Table1.DB'
        UpdateMode = upWhereKeyOnly
        Left = 64
        Top = 80
      end
    par exemple:

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    procedure TForm1.CopyBase;
     var
      AParams: TStringList;
      sTable, sDirTable: string;
      AA, MM, JJ: word;
     begin
      with dataModule do begin
        TRY
          // récup Dir de la table à copier
          AParams := TStringList.Create;
          Session.GetAliasParams(tableACopier.DataBaseName, AParams);
          sDirTable := Copy(AParams.Strings[0], 6, 255);
        FINALLY
          AParams.Free;
        END;
        // crée un nom de table indexé sur la date
        DecodeDate(Date, AA, MM, JJ);
        if AA > 2000 then
          sTable := 'TableSave ' + Copy(IntToStr(AA), 3, 2)
        else
          sTable := 'TableSave ' + IntToStr(AA);
        if MM < 10 then
          sTable := sTable + '0' + IntToStr(MM)
        else
          sTable := sTable + IntToStr(MM);
        if JJ < 10 then
          sTable := sTable + '0' + IntToStr(JJ) 
        else
          sTable := sTable + IntToStr(JJ);
        if FileExists(sDirTable + sTable) then
          Exit;  // on n'écrase pas l'ancienne
        if not bCreateTableLocale(sDirMemTable, sTable) then
          Exit;  // création impossible
        TRY
          table1.Close;
          table1.Filtered := false;
          bmCopyLocale.Execute;
        EXCEPT
          Exit;
        END;
      end;	// with
     end;
     
    function TfrmTable.bCreateTableLocale(sDirTable, sTable: string): boolean;
     begin
      Result := false;
      with dataModule.tableSave do begin
        Close;
        DatabaseName := sDirTable;
        TableName := sTable;
        if FileExists(sDirTable + '\' + sTable) then begin
        TRY
          DeleteTable;
        EXCEPT
          TRY
             EmptyTable;
          EXCEPT
             on E:EDatabaseError do begin
                msg('Impossible de créer la table de sauvegarde !');
                Exit;
             end;
          END;
        END;
      end;
      // crée la table locale
    	FieldDefs.Clear;
    	FieldDefs.Add('Nom',ftString,20,False);
    ...
    	TRY
    		CreateTable;
    		IndexDefs.Clear;
    		AddIndex('', 'Nom', [ixPrimary,ixUnique]);
    	EXCEPT
    		on E:EDatabaseError do
    			Exit;
    	END;
    	Result := true;
      end;	// with
    end;
    Je n'ai plus de batterie...Vite fait, j'espère qu'il n'y a pas trop d'erreurs
    @+
    Fabrice

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. extraire un enregistrement d'une base Paradox
    Par k2fik dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/12/2004, 16h54
  3. Créer un champ contenant un son wav dans une base Paradox
    Par Grandad95 dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2004, 17h00
  4. Création d'une base PARADOX dynamiquement ? tutorial ?
    Par BXDSPORT dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/07/2004, 10h08
  5. Filtre sur une base Paradox
    Par mika dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/03/2004, 11h51

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