我正在尝试将数据从Progress 4GL数据库获取到SQL Server。

理想情况下,我想直接在.NET中执行此操作,而不是通过ODBC驱动程序执行此操作,因为进行中的ODBC驱动程序网关不支持多核(至少在我们拥有的版本上)。

您是否知道如何从.NET(理想情况下为C#,但在这里我很灵活...;)连接到Progress 4GL数据库)?

干杯

缺口

最佳答案

如果您使用的是Progress OpenEdge 10.2或更高版本,则可以将.NET控件直接嵌入到4GL程序中。但这就像用锤子扑灭苍蝇...
即使不是Progress 4GL(编程语言),它也具有积极的单线程功能,并且不支持多线程.NET控件。

4GL和SQL-92数据库引擎(Progress支持2种不同的接口到存储引擎)都是多线程的,并且非常乐意利用您拥有的尽可能多的内核。

但是,您可能会有许可限制-“工作组”许可在v9和早期v10中使用基于信号量的并发算法。 (以后的版本使用非常有限的互斥锁(自旋锁)。)“企业”数据库没有这种限制。

或者有可能目标系统根本没有设置为支持多个ODBC连接(数据库管理员应该知道,关键参数是-Mn,-Ma和可能的-Mpb)。

如果我这样做的话,我想我会通过针对数据的不同部分启动多个会话来简单地伪造多线程访问。

关于c# - 进展4GL和.Net,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2086638/

10-12 22:56