Domanda

Sto lavorando con un client che ha un sistema esistente, basato su quello che è apparentemente un database Paradox. Ho il database, sotto forma di un file zip contenente file .DB, .MB e .PX, uno per ogni tabella.

Devo prendere (alcuni) di questi dati e importarli in un'applicazione Web che utilizza MySQL. Qualcuno ha un modo per me di estrarre questi dati, che non comporta l'installazione di Paradox?

In caso contrario, Paradox esporta in un formato leggibile? O come SQL o qualcosa che può essere analizzato abbastanza facilmente? Il responsabile di questo sistema per il mio cliente è un volontario (sono senza scopo di lucro), quindi mi piacerebbe andare da lui con una soluzione - perché l'ultima volta che ho chiesto i dati, ho ottenuto questo, che chiaramente non va bene.

È stato utile?

Soluzione

Entrambe le piattaforme Paradox per DOS e Paradox per Windows esporteranno le tabelle di dati nei formati Testo delimitato, Testo a lunghezza fissa e Lotus 1-2-3. Il vecchio Paradox per DOS scrive anche Lotus Symphony, mentre il Paradox per Windows leggermente meno antico fa un passabile Excel 5.

Tuttavia, qualcuno dovrà sedersi ed esportare i tavoli uno per uno, o scrivere uno script per farlo. Ovviamente dovresti avere Paradox installato per scrivere lo script.

-Al.

Altri suggerimenti

l'articolo di Wikipedia su Paradox elenca altre due cose, che potrebbero essere interessante, entrambi con licenza GPL:

E se hai Delphi e vuoi scrivere tu stesso un convertitore (che avrebbe bisogno del BDE per funzionare) puoi dare un'occhiata a questo articolo o al codice sorgente di ConvertCodeLib su questo web sito . Entrambi utilizzano TClientDataset, che può scrivere un CDS (formato binario) o un file XML.

MS ha istruzioni per l'utilizzo del driver MS Jet per leggere i dati dai file prodotti da Paradox 3-5. Questo può agire come (almeno) un driver ODBC, quindi puoi usarlo per leggere un file Paradox da qualsiasi cosa sappia usare ODBC.

Hai alcune opzioni:

  1. Metti le mani sul software Paradox originale e usalo per esportare il database in CSV formato. Sfortunatamente, Borland non lo vende più e la versione più recente non funziona bene su Windows XP o versioni successive.
  2. Accedi al database usando un driver ODBC Paradox o dBase / xBase. Paradox e xBase sono molto simili, quindi potresti essere in grado di estrarre i dati usando i driver pensati per entrambi. Potresti essere in grado di ottenere un driver ODBC Paradox da qualche parte su firebirdsql.org .
  3. Usa Borland Delphi per scrivere un programma che esporterà i dati di cui hai bisogno. Come è stato detto da qualcun altro, puoi ottenere una versione gratuita chiamata Turbo Explorer . Dovrai anche installare BDE separatamente, poiché non viene fornito con Turbo Explorer.

Ho lavorato su una gigantesca migrazione di dati da Paradox a MySQL. Il mio approccio generale è stato quello di esportare file CSV da Paradox e quindi importare i file CSV dalla riga di comando di MySQL. Tuttavia, questo sistema si guasta quando ci sono campi M (memo) in Paradox, perché i dati non vengono inseriti nel file CSV come previsto.

Ecco il mio lungo processo per portare i dati di Paradox in MySQL, speriamo che aiuti qualcuno!

  • Apri il file Paradox in Paradox, esporta in file dbase (.dbf). Ciò consente di esportare i dati del memo nel formato BLOB di dbase.

  • Apri il file .dbf in Paradox. Potrebbe essere necessario convertire il doppio formato in numero intero o numero lungo prima dell'apertura in dbfviewer. Il doppio formato sembra non funzionare. Salva file.

  • Utilizza questo programma per aprire il file dbase ed esportarlo in Excel: http://dbfviewer.org/ Esporta - > File XLS & # 8230; questo lo apre in Excel

  • Ora dobbiamo creare una macro perché Excel non ha alcun modo nativo per racchiudere i campi CSV tra virgolette o altro. Ho incollato la macro qui sotto, ma qui ci sono i siti di riferimento che ho trovato. Un sito aveva istruzioni migliori ma testo corrotto: 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/

  • In Excel sostituisci tutto " con "di CTRL-F, sostituisci ... qualsiasi " nei record rovinerà le cose

  • In Excel premere ALT - F11 per aprire le macro Inserisci - > Modulo Crea questa macro per salvare i file CSV racchiusi tra virgolette doppie:

    File CSV secondario ()

    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
    
  • Quindi Esegui - > Esegui macro

  • Imposta lo schema db MySQL di destinazione con campi di testo dove vogliamo che vadano i BLOB

  • Nella riga di comando di MySQL ecco un esempio di come eseguire l'importazione:

    DATI DI CARICO INFILE LOCALE 'C: /data.csv' INTO TABLE table_name CAMPI TERMINATI DA ',' INCLUSO DA """ LINEE TERMINATE DA '\ r \ n' (colonna1, colonna2)

Paradox è un formato nativo per il motore di database Borland, incluso in vari prodotti di programmazione Delphi. La proprietà è cambiata di mano almeno una volta di recente, ma a un certo punto c'erano "Express" gratuiti. versioni di Delphi disponibili che ti permetteranno di scrivere un semplice programma per esportare queste cose. Se una versione gratuita non è più disponibile, lo SKU disponibile più basso dovrebbe includere la funzionalità BDE.

Usando MS Access 2007 puoi importare Paradox 7 e versioni precedenti usando la distribuzione BDE inclusa con il programma gratuito Paradox Database Editor (google it). Utilizzare una connessione come:

DoCmd.TransferDatabase acImport, "ODBC Database", _
    "Paradox 3.X;HDR=NO;IMEX=2;ACCDB=YES;DATABASE=C:\apache\Archive;TABLE=Messages#db", _
    acReport, DailyArchiveName, "MyDatabase"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top