Чтение файлов базы данных 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:
- pxlib: библиотека для чтения и записи баз данных Paradox
- pxtools: преобразование базы данных Paradox в базу данных SQL
и если у вас есть Delphi и вы хотите написать конвертер самостоятельно (для чего потребуется BDE), вы можете взглянуть на в этой статье или в исходном коде ConvertCodeLib на этом веб-сайте. Оба используют TClientDataset, который может писать компакт-диски (двоичный формат) или XML-файл.
MS имеет - инструкции для использования драйвера MS Jet для чтения данных из файлов, созданных Paradox 3-5. Это может действовать как (по крайней мере) драйвер ODBC, поэтому вы можете использовать его для чтения файла Paradox практически из всего, что знает, как использовать ODBC.
У вас есть несколько вариантов:
- получите оригинальное программное обеспечение Paradox и используйте его для экспорта базы данных в CSV-файла. К сожалению, Borland больше не продает его, и самая последняя версия не работает хорошо на Windows XP или выше.
- доступ к базе данных с помощью драйвера ODBC Paradox или dBase / xBase. Paradox и xBase очень похожи, поэтому вы можете извлечь данные, используя драйверы, предназначенные для любого из них. Вы можете сможете получить парадокс драйвер ODBC где-то на firebirdsql.org.
- используйте 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"