Lecture des fichiers de la base de données Paradox
-
06-07-2019 - |
Question
Je travaille avec un client qui a un système existant, construit sur ce qui est apparemment une base de données Paradox. J'ai la base de données, sous la forme d'un fichier zip contenant les fichiers .DB, .MB et .PX, un pour chaque table.
Je dois prendre (certaines) de ces données et les importer dans une application Web utilisant MySQL. Quelqu'un at-il un moyen pour moi d'extraire ces données, cela ne nécessite pas l'installation de Paradox?
Si non, Paradox exporte-t-il dans un format lisible? Soit en SQL ou quelque chose qui peut être analysé assez facilement? Le responsable de ce système pour mon client est un bénévole (il s’agit d’un organisme à but non lucratif). Je voudrais donc lui proposer une solution - car la dernière fois que j’ai demandé les données, j’ai eu la est clairement pas bon.
La solution
Les plates-formes Paradox pour DOS et Paradox pour Windows exporteront les tableaux de données aux formats Texte délimité, Texte de longueur fixe et Lotus 1-2-3. L'ancien Paradox pour DOS écrit également Lotus Symphony, tandis que le Paradox pour Windows légèrement moins ancien effectue un Excel 5 passable.
Cependant, quelqu'un devra s'asseoir et exporter les tables une par une ou écrire un script à cette fin. Bien sûr, Paradox doit être installé pour écrire le script.
-Al.
Autres conseils
L'article sur wikipedia sur Paradox répertorie deux autres choses qui pourraient être interessant, tous deux sous licence GPL:
- pxlib: une bibliothèque pour lire et écrire des bases de données Paradox
- pxtools: convertir une base de données Paradox en base de données SQL
Et si vous avez Delphi et que vous voulez écrire vous-même un convertisseur (qui aurait besoin du BDE pour fonctionner), vous pouvez jeter un oeil à cet article ou au code source de ConvertCodeLib sur ce site site . Les deux utilisent TClientDataset, qui peut écrire un CDS (format binaire) ou un fichier XML.
MS dispose de instructions sur l'utilisation du pilote MS Jet pour lire les données à partir de fichiers produits par Paradox. 3-5. Cela peut servir (au moins) de pilote ODBC. Vous pouvez donc l’utiliser pour lire un fichier Paradox à partir de tout ce qui sait utiliser ODBC.
Vous avez plusieurs options:
- Mettez la main sur le logiciel Paradox d'origine et utilisez-le pour exporter la base de données au format CSV format. Malheureusement, Borland ne le vend plus et la version la plus récente ne fonctionne pas correctement sous Windows XP ou supérieur.
- Accédez à la base de données à l’aide d’un pilote ODBC Paradox ou dBase / xBase. Paradox et xBase étant très similaires, vous pourrez peut-être extraire les données à l'aide de pilotes destinés à l'un ou l'autre. Vous pourrez peut-être vous procurer un pilote ODBC Paradox quelque part sur firebirdsql.org .
- Utilisez Borland Delphi pour écrire un programme qui exportera les données dont vous avez besoin. Comme quelqu'un d'autre l'a mentionné, vous pouvez obtenir une version gratuite appelée Explorateur Turbo . Vous devrez également installer le BDE séparément, car il ne vient pas avec Turbo Explorer.
Je travaille sur une migration de données gigantesque de Paradox vers MySQL. Mon approche générale consiste à exporter des fichiers CSV à partir de Paradox, puis à importer les fichiers CSV à partir de la ligne de commande MySQL. Toutefois, ce système tombe en panne lorsqu'il existe des champs M (mémo) dans Paradox, car ces données ne sont pas extraites dans le fichier CSV comme prévu.
Voici mon processus interminable d'obtention de données Paradox dans MySQL. J'espère que cela aidera quelqu'un!
-
Ouvrez le fichier Paradox dans Paradox, exportez-le dans le fichier dbase (.dbf). Cela exporte les données du mémo au format blob de dbase.
-
Ouvrez le fichier .dbf dans Paradox. Il peut être nécessaire de convertir le double format en entier long ou en nombre avant de l’ouvrir dans dbfviewer. Le double format semble ne pas fonctionner. Enregistrer le fichier.
-
Utilisez ce programme pour ouvrir le fichier dbase, puis exporter vers Excel: http://dbfviewer.org/ Exporter - > Fichier XLS & # 8230; cela l'ouvre dans Excel
-
Nous devons maintenant créer une macro car Excel ne dispose d'aucun moyen natif pour inclure des champs CSV avec des guillemets ou quoi que ce soit d'autre. J'ai collé la macro ci-dessous, mais voici les sites de référence que j'ai trouvés. Un site avait de meilleures instructions mais du texte corrompu: http://www.mrexcel.com /forum/showthread.php?320531-export-as-csv-file-enclosed-quotes http://www.markinns.com/articles/full/export_excel_csvs_with_double_quotes/
-
Dans Excel, remplacez tous les " par 'par CTRL-F, remplacez ... tout " dans les disques va gâcher
-
Dans Excel, appuyez sur ALT - F11 pour ouvrir les macros. Insérer - > Module Créez cette macro pour enregistrer les fichiers CSV entre guillemets:
Sous-fichier CSV ()
Dim SrcRg As Range Dim CurrRow As Range Dim CurrCell As Range Dim CurrTextStr As String Dim ListSep As String Dim FName As Variant FName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv") If FName <> False Then ListSep = Application.International(xlListSeparator) If Selection.Cells.Count > 1 Then Set SrcRg = Selection Else Set SrcRg = ActiveSheet.UsedRange End If Open FName For Output As #1 For Each CurrRow In SrcRg.Rows CurrTextStr = "" For Each CurrCell In CurrRow.Cells CurrTextStr = CurrTextStr & """" & CurrCell.Value & """" & ListSep Next While Right(CurrTextStr, 1) = ListSep CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1) Wend Print #1, CurrTextStr Next Close #1 End If End Sub
-
Ensuite, exécutez - > Exécuter la macro
-
Configurez le schéma de base de données MySQL cible avec des champs de texte dans lesquels vous voulez que les blobs aillent
-
En ligne de commande MySQL, voici un exemple de la procédure d'importation:
LOAD DATA LOCAL INFILE 'C: /data.csv' INTO TABLE nom_table ZONES TERMINÉES PAR ',' FERMÉ PAR '"' LIGNES TERMINÉES PAR '\ r \ n' (colonne1, colonne2)
Paradox est un format natif du moteur de base de données Borland, inclus dans divers produits de programmation Delphi. La propriété a changé de mains au moins une fois récemment, mais à un moment donné, il y avait des options "Express" gratuites. versions de Delphi disponibles qui vous permettraient d’écrire un programme simple pour exporter ce genre de choses. Si une version gratuite n'est plus disponible, la SKU la plus basse disponible doit inclure la fonctionnalité BDE.
À l’aide de MS Access 2007, vous pouvez importer Paradox 7 et les versions antérieures à l’aide de la distribution BDE fournie avec le programme gratuit Paradox Database Editor (google it). Utilisez une connexion telle que:
DoCmd.TransferDatabase acImport, "ODBC Database", _
"Paradox 3.X;HDR=NO;IMEX=2;ACCDB=YES;DATABASE=C:\apache\Archive;TABLE=Messages#db", _
acReport, DailyArchiveName, "MyDatabase"