4

我正在尝试设置对 Sage 100 Advanced ERP 数据的远程访问,以便在 MySQL 数据库上运行的网站中使用。我只需要获取产品的库存水平,所以它是一个只读应用程序。

据我了解,Sage 100 带有一个 ODBC 驱动程序,可以通过创建数据库视图来远程访问 Sage 的平面文件数据存储。我需要做的是将 Sage 服务器上的数据中的一些字段复制到托管网站的 Web 服务器。

为了自动化这个过程,我假设我需要在 web 服务器上设置一个 cron 作业,该作业运行一个 PHP 脚本(首选语言),执行连接到远程服务器的 SQL 查询,提取所需的数据,并将其写入适当的MySQL 数据库中的表。最后一步我很好,但我不确定从 ODBC 数据源连接和检索数据的步骤。

如何连接并从 ODBC 数据源中提取 Sage 100 数据以写入另一台服务器上的 MySQL 数据库?

或者,有没有办法将 ODBC 数据源同步/镜像到单独服务器上的 MySQL 数据库,然后我可以使用它来将数据复制到网站的数据库?


注意:MySQL 有关于使用 ODBC 从 MySQL 提取数据的文档,但没有关于如何在外部服务器上使用 ODBC 将数据导入 MySQL 的信息。

4

1 回答 1

1

这实际上很容易。只需建立到 SOTAMAS90 DSN 的 ODBC 连接。您的连接字符串如下所示:

“DSN=SOTAMAS90;UID=MyUserId;PWD=MyPassword;公司=ABC”

请注意,默认情况下 Sage 安装 32 位版本的驱动程序,这意味着您必须将应用程序定位到 32 位。或者您可以安装 64 位版本的驱动程序,该驱动程序可以在您的 Sage 目录中的 WKSetup 文件夹中找到。

之后,只需从您需要的每个表中编写代码到 SELECT *,然后将它们写入您的 MySql 数据库。

我不是很了解 MySql,但是在 SQL Server 中你可以设置一个 Linked Server,将其指向 SOTAMAS90,然后查询 SQL Server 数据库而不是 ODBC 驱动程序。但它很慢。如果您可以运行每晚的 ETL 来填充您的 MySQL 数据库并对其进行查询,那么性能会更好。一定要在定义表之后设置外键并为它们创建索引。

希望有帮助。

亚伦

于 2019-03-26T14:39:30.527 回答