Progress DB 4GL 和 ODBC 数据提取

Progress DB 4GL and ODBC data extract

我正在尝试连接到 Progress DB 4GL 以使用 ODBC (Qlikview) 提取数据。

是否可以通过 ODBC 使用 4GL 提取数据?

你能指导我吗?

感谢和问候, 西兰巴拉散

据我所知,您可以通过 ODBC 使用 Progress SQL92 接口访问 4GL 表(用于记录的 CRUD),但是您不能使用 SQL92 创建或修改 4GL 表。

您使用 SQL92 CREATE TABLE 命令创建的任何表都不能被 4GL/ABL 程序看到。

Progress 网站说 Progress ODBC 驱动程序包含在 Progress/Openedge 客户端包中。

您可以使用包含的 ODBC 驱动程序,但它使用 SQL 语法,而不是 ABL (4GL) 查询。

Progress Datadirect 有一个为 OpenEdge Appserver https://documentation.progress.com/output/DataDirect/openaccessbooks/oaoeguide.pdf

提供 ODBC 前端的产品

http://acorn.ro/products/abl-jdbc/ 为 ABL 代码提供 jdbc 接口。

ODBC 客户端使用 SQL,而不是 4GL。

要使用 4GL 提取数据,如果您与服务器位于同一主机上,您可以使用 "self service"(共享内存)连接,或者如果您使用 "client networking" 许可证在联网的计算机上。

当然,您可以通过各种复杂的方法来使用 4GL,而无需实际的数据库连接和一系列中间层以某种方式获得 ODBC 数据连接。 (例如,您可以使用套接字与使用 ODBC 连接到 Progress 的 C# 应用程序通信...)但具体情况取决于您可用的资源、您的编码技能以及 为什么你正在尝试这样做。

如果您设法拼凑出类似的东西,您仍然会遇到 ODBC 连接说话的问题 SQL。因此,如果您希望 4GL 索引选择或触发器或 "variable width data everywhere" 等功能正常工作,那么您将不走运。 SQL 界面不知道这些东西,将无法提供它们。

我很确定 Clikview 根本不支持 4GL -- 所以您还必须再次从 4GL 转换回 SQL。整件事毫无意义。

(关于 "why" 我只能想象您正试图绕过许可要求。如果是这种情况,那么您不仅要做到这一点,而且比需要的要困难得多,而且您也不会解决许可问题。许可不关心哪些技术和产品用于或不用于建立连接。)