Чтение файлов базы данных Paradox

Я работаю с клиентом, у которого есть существующая система, построенная на том, что, по-видимому, является базой данных Paradox. У меня есть база данных, в виде ZIP-файла, содержащего .ДЕЦИБЕЛ. ,МБ .Файлы PX, по одному для каждой таблицы.

Мне нужно взять (некоторые) эти данные и импортировать их в веб-приложение, которое использует MySQL. У кого-нибудь есть способ извлечь эти данные, который не включает установку Paradox?

Если нет, экспортирует ли Paradox в какой-либо читаемый формат? Либо как SQL, либо что-то, что можно проанализировать достаточно легко? Человек, отвечающий за эту систему для моего клиента, является добровольцем (они некоммерческие), поэтому я хотел бы пойти к нему с решением-потому что в прошлый раз, когда я попросил данные, я получил это, что явно не хорошо.

7 ответов


и Paradox для DOS, и Paradox для платформ Windows будут экспортировать таблицы данных в текст с разделителями, текст фиксированной длины и форматы Lotus 1-2-3. Старый парадокс для DOS также пишет Lotus Symphony, в то время как немного менее античный парадокс для Windows делает сносный Excel 5.

однако кто-то должен будет сесть и экспортировать таблицы один за другим или написать сценарий. Конечно, нужно установили парадокс писать скрипт.

-Al.


на статья Википедии о Paradox перечисляет две другие вещи, которые могут быть интересны, как под лицензией GPL:

и если у вас есть Delphi и вы хотите написать конвертер самостоятельно (для чего потребуется BDE), вы можете взглянуть на в этой статье или в исходном коде ConvertCodeLib на этом веб-сайте. Оба используют TClientDataset, который может писать компакт-диски (двоичный формат) или XML-файл.


MS имеет - инструкции для использования драйвера MS Jet для чтения данных из файлов, созданных Paradox 3-5. Это может действовать как (по крайней мере) драйвер ODBC, поэтому вы можете использовать его для чтения файла Paradox практически из всего, что знает, как использовать ODBC.


У вас есть несколько вариантов:

  1. получите оригинальное программное обеспечение Paradox и используйте его для экспорта базы данных в CSV-файла. К сожалению, Borland больше не продает его, и самая последняя версия не работает хорошо на Windows XP или выше.
  2. доступ к базе данных с помощью драйвера ODBC Paradox или dBase / xBase. Paradox и xBase очень похожи, поэтому вы можете извлечь данные, используя драйверы, предназначенные для любого из них. Вы можете сможете получить парадокс драйвер ODBC где-то на firebirdsql.org.
  3. используйте Borland Delphi для написания программы, которая будет экспортировать необходимые вам данные. Как уже упоминалось, вы можете получить бесплатную версию под названием Turbo Explorer. Вам также придется установить BDE отдельно, так как он не поставляется с Turbo Explorer.

Я работал над гигантской миграцией данных из Paradox в MySQL. Мой общий подход состоял в том, чтобы экспортировать CSV-файлы из Paradox, а затем импортировать CSV-файлы из командной строки MySQL. Однако эта система ломается, когда в Paradox есть m (memo) полей, потому что эти данные не попадают в CSV-файл, как ожидалось.

вот мой длинный процесс для получения данных Paradox в MySQL, надеюсь, это кому-то поможет!

  • открыть Файл Paradox в Paradox, экспорт в dbase (.архив DBF. Что это делает, так это экспорт данных memo в формат blob dbase.

  • открыть .dbf файл в Paradox. Возможно, потребуется преобразовать двойной формат длинное целое число или число перед открытием в dbfviewer. Двойной формат, похоже, не работает. Сохранить файл.

  • используйте эту программу, чтобы открыть файл dbase, а затем экспортировать в Excel:http://dbfviewer.org/ Экспортный>- XLS-файл ... это открывает его в Excel

  • теперь нам нужно создать макрос, потому что Excel не имеет собственного способа заключить поля CSV с кавычками или что-нибудь еще. Я вставил макрос ниже, но вот справочные сайты, которые я нашел. Один сайт имел лучшие инструкции, но поврежден текст: 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/

  • в Excel заменить все " на " С помощью CTRL-F, заменить... любой " в записи испортит

  • в Excel нажмите ALT-F11, чтобы открыть макросы Вставка - > Модуль Создайте этот макрос, чтобы сохранить CSV-файлы, заключенные в двойные кавычки:

    Sub Csvfile, был()

    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
    
  • Затем Выполнить - > Запустить Макрос

  • настройте целевую схему MySQL db с текстовыми полями, где мы хотим, чтобы blobs шли

  • в командной строке MySQL вот пример того, как сделать импорт:

    загрузить локальный файл данных 'C:/data - ... КШМ' В таблицу table_name ПОЛЯ ЗАКАНЧИВАЮТСЯ НА ',' ПРИЛАГАЕТСЯ К"" Строки, заканчивающиеся на '\r\n' (column1, column2)


Paradox является собственным форматом для Borland Database Engine, который входит в состав различных программных продуктов Delphi. Владение сменилось по крайней мере один раз в последнее время, но в какой-то момент появились бесплатные "экспресс" версии Delphi, которые позволили бы вам написать простую программу для экспорта этого материала. Если бесплатная версия больше не доступна, самый низкий доступный SKU должен включать функциональность BDE.


используя MS Access 2007, вы можете импортировать Paradox 7 и ниже, используя дистрибутив BDE, включенный в бесплатную программу Paradox Database Editor (google it). Используйте соединение, например:

DoCmd.TransferDatabase acImport, "ODBC Database", _
    "Paradox 3.X;HDR=NO;IMEX=2;ACCDB=YES;DATABASE=C:\apache\Archive;TABLE=Messages#db", _
    acReport, DailyArchiveName, "MyDatabase"