Пакетное преобразование таблиц Corel Paradox 4.0 в CSV / SQL - через PHP или другие скрипты - PullRequest
1 голос
/ 15 июля 2011

Недавно я начал работать над поиском способов преобразования около 16 тыс. Таблиц базы данных Corel Paradox 4.0 (мой клиент уже более 20 лет использует устаревшую платформу, в основном из-за больших материально-технических проблем) в более современные форматы (например, CSV, SQL, и т.д.) массово, и до сих пор я смотрел на PHP, поскольку в нем есть библиотека, посвященная обработке данных Paradox, хотя я довольно уверен в том, как написать код преобразования (т. е. просто вызвать несколько файлов open, close, и написание функций) Я обеспокоен обнаружением ошибок и обеспечением того, чтобы при запуске сценария я не тратил часы на ожидание его запуска, а только для того, чтобы увидеть экспортированные поврежденные файлы 16 КБ.

Кроме того, я не совсем уверен насчет логического цикла для вызова файлов. Я подумываю о том, чтобы программа сгенерировала список всех файлов с соответствующим расширением и затем зациклила список, однако я не уверена, идеально ли это для каталога такого размера.

Это выполняется в локальной системе Windows 7 x64 с настройкой XAMPP (база данных - все для внутреннего использования), поэтому я не уверен, что чистый PHP - лучшая идея - поэтому мне было интересно, есть ли Python или какой-то другой другой легкий язык сценариев может быть лучше для этого.

Большое спасибо заранее за любые идеи и помощь,

Ответы [ 2 ]

1 голос
/ 27 сентября 2016

Это, несомненно, слишком поздно, чтобы помочь вам, но для потомков ...

Если у вас есть рабочая среда Corel Paradox, его можно просто использовать для облегчения перехода.

Мы переместили таблицы Corel Paradox 9, которые у нас были, в схему Oracle, которую мы создали, подключившись к этой схеме (используя псевдоним, такой как SCHEMA001), а затем написав эту процедуру в сценарии изнутри Paradox:

Proc writeTable(targetTable String) errorTrapOnWarnings(Yes) try tc.open(targetTable) tc.copy(":SCHEMA001:" + targetTable) tc.close() onFail errorShow() endTry endProc

Можно было бы значительно улучшить это с помощью большего количества программирования на Paradox, но вы поняли идею.Однако мы обнаружили, что Paradox использует двойные кавычки для имен столбцов при создании версии Oracle, что означает, что вы можете получать строчные буквы в именах столбцов в Oracle, что является проблемой.Мы исправили это, записав быстрый запрос Oracle в upper () для всех полученных имен столбцов.

Мы назвали процедуру так:

Var targetTable String tc TCursor endVar

method run(var eventInfo Event) targetTable = "SomeTableName" writeTable(targetTable) msgInfo("TransferData.ssl--script finished", "That's all, folks!" ) return endMethod

0 голосов
/ 15 июля 2011

Если вы намереваетесь просто преобразовать данные, что, я полагаю, является процессом, который вы выполняете только после того, как вы запустите скрипт локально как командный скрипт. Для этого вам не нужен веб-сайт и, следовательно, XAMPP. Какой язык вы выбираете, является второстепенным, за исключением того, что вы говорите, что в PHP есть библиотека. Есть ли у питона или других?

Если вы беспокоитесь об обнаружении ошибок, почему бы сначала не протестировать ваш скрипт только с одним файлом. Если это преобразование прошло успешно, вы можете построить свой цикл и проверить его, возможно, на пяти файлах, то есть иметь счетчик, который завершает процесс после этого числа. Это все в порядке, вы можете продолжать с остальными. Вы также можете записать данные журнала и вывести результат на каждые 100 обработанных файлов. Таким образом, вы можете увидеть, что ваш скрипт что-то делает или работает вхолостую.

...