je cherche un moyen ou un code source pour convertir un fichier dbf " dbase" en fichier paradox "delphi"
je cherche un moyen ou un code source pour convertir un fichier dbf " dbase" en fichier paradox "delphi"
regarde DataPump fourni avec Delphi ...
Sinon, ouvre ta table Dbase via un TTable, ouvre un autre TTable Paradox, copie les FieldDefs, puis fait les Append ...
Salut, je ne sais pas si c'est toujours d'actualité, mais je suis aussi dans cette problématique. Voici le bout de code que j'ai testé aujourd'hui et qui fonctionne. Je récupère une table *.dbf à laquelle j'accède avec le composant TaCycle1 et je la transpose dans la table TestCycle.db que j'accède au moyen du composant TaPdx créé dynamiquement.
Deux remarques :
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 //creation de la nouvelle table Pdox TaPdx := TTable.Create(nil); TaPdx.Active := False; TaPdx.TableType := ttParadox; TaPdx.TableName := ExtractFilePath(Application.ExeName) + 'TestCycle.db'; //Au cas où suppression des définitions de champs existantes TaPdx.FieldDefs.Clear; //Ouverture de la table *.dbf TaCycle1.Open; //récupération des champs de l'ancienne table et copie vers la nouvelle For i := 0 To TaCycle1.FieldCount - 1 Do TaPdx.FieldDefs.Add(TaCycle1.Fields[i].FieldName, TaCycle1.Fields[i].DataType, TaCycle1.Fields[i].Size,TaCycle1.Fields[i].Required); //Au cas où suppression des définitions de d'index existantes TaPdx.IndexDefs.Clear; //Les tables paradox doivent avoir au moins un index primaire TaPdx.IndexDefs.Add('',TaCycle1.Fields[0].FieldName,[ixPrimary]); //récupération et copie des index For i := 0 To TaCycle1.IndexDefs.Count - 1 Do TaPdx.IndexDefs.Add(TaCycle1.IndexDefs.Items[i].Name, TaCycle1.IndexDefs.Items[i].Fields,[ixCaseInsensitive]); //Création de la nouvelle table TaPdx.CreateTable; //Copie des enregistrement de la table *.dbf vers la table *.db TaPdx.BatchMove(TaCycle1,batAppendUpdate);
- je ne suis pas absolument certain que les tables paradox doivent comporter un index primaire mais il m'a fallu en créer un pour pouvoir monter la table dans une DBGrid,
- je n'ai pas su récupérer les "options" des index de la table *.dbf (savoir si l'index est maintenu, unique et/ou descendant) pour les transposer vers la table *.db donc par défaut j'ai mis attribué l'option "ixCaseInsensitive" à tous les index de la nouvelle table... Si quelqu'un à une solution je suis preneur![]()
Bonjour,
L'index primaire est obligatoire dans Paradox, alors qu'il n'existe pas pour dBase.
PL
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager