php - 将 Corel Paradox 4.0 表批量转换为 CSV/SQL——通过 PHP 或其他脚本

标签 php python mysql xampp php-gtk

最近,我开始探索将大约 16k Corel Paradox 4.0 数据库表(我的客户一直使用遗留平台超过 20 年,主要是由于大量后勤问题)转换为更现代的格式(即 CSV、SQL、等)大量,到目前为止我一直在研究 PHP,因为它有一个专门用于 Paradox 数据处理的库,但是虽然我对如何编写转换代码相当有信心(即简单地调用一些文件打开,关闭,并编写函数)我关心错误检测并确保在运行脚本时,我不会花费数小时等待它运行只是为了看到导出的 16k 损坏文件。

此外,我不完全确定调用文件的逻辑循环。我正在考虑让程序生成一个包含所有具有适当扩展名的文件的列表,然后循环遍历该列表,但是我不确定这是否适合这种大小的目录。

这是在具有 XAMPP 设置的本地 Windows 7 x64 系统上运行的(数据库都是内部使用的)所以我不确定纯 PHP 是否是最好的主意——所以我一直想知道是 Python 还是其他一些其他轻量级脚本语言可能更适合处理此问题。

非常感谢您的任何见解和帮助,

最佳答案

毫无疑问,这对您来说已经太迟了,但为了后代......

如果拥有 Corel Paradox 工作环境,则可以使用它来简化过渡。

我们将我们拥有的 Corel Paradox 9 表移动到我们构建的 Oracle 模式中,方法是连接到该模式(使用别名,例如 SCHEMA001),然后在 Paradox 内部的脚本中编写此过程:

Proc writeTable(targetTable 字符串) errorTrapOnWarnings(是) 尝试 tc.open(目标表) tc.copy(":SCHEMA001:"+ targetTable) tc.关闭() 失败时 错误显示() 结束尝试 结束过程

可以通过更多 Paradox 编程来高度改进它​​,但您明白了。不过,我们发现的一件事是,Paradox 在创建 Oracle 版本时对列名使用双引号,这意味着您可以在 Oracle 中的列名中使用小写字母,这很麻烦。我们通过向 upper() 所有结果列名称编写一个快速 Oracle 查询来纠正这个问题。

我们这样调用程序:

变量 目标表字符串 tc 游标 结束变量

方法运行(var eventInfo 事件) targetTable = "SomeTableName" 写表(目标表) msgInfo("TransferData.ssl--脚本完成", “就这些了,伙计们!” ) 返回 结束方法

关于php - 将 Corel Paradox 4.0 表批量转换为 CSV/SQL——通过 PHP 或其他脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6709833/

相关文章:

mysql - 在 GROUP BY 中使用 LIMIT 来获得每组 N 个结果?

mysql - 如何优化由于 ORDER BY RAND() 导致的缓慢 MySQL 查询?

php - 在 MySQL 中存储某物的顺序

php - mysql 总和值 GROUP BY 分割

python - PyQt4:使用 QVariantAnimation 在两个值之间设置动画

python - Scrapy 登录适用于某些网站,但不适用于其他网站

php - 将 html 保存在数据库中而不进行清理然后像 stackoverflow 一样在代码标记中显示它是否安全?

php - 这是封装吗?

PHP MySQL 邮政编码到纬度/经度然后按距离查询排序不起作用

python float 到 in int 转换