我正在尝试将数据从 Progress 4GL 数据库中取出,放入 SQL Server。
理想情况下,我想直接在 .NET 中执行此操作,而不是通过 ODBC 驱动程序,因为正在进行的 ODBC 驱动程序网关不支持多核(至少在我们拥有的版本上)。
您知道如何从 .NET 连接到 Progress 4GL 数据库吗(最好是在 C# 中,但我在这里很灵活...;))?
干杯
尼克
最佳答案
如果您使用的是 Progress OpenEdge 版本 10.2 或更高版本,您可以将 .NET 控件直接嵌入到 4GL 程序中。但这就像用大锤打苍蝇一样…… 即使不是 Progress 4GL(编程语言)也是单线程的,并且不支持多线程 .NET 控件。
4GL 和 SQL-92 数据库引擎(Progress 支持 2 种不同的存储引擎接口(interface))都是多线程的,并且非常乐意利用尽可能多的内核。
但是,您可能有许可限制——“工作组”许可在 v9 和早期的 v10 中使用基于信号量的并发算法。 (后来的版本使用非常有限的互斥锁(自旋锁)。)“企业”数据库没有这样的限制。
或者目标系统可能根本没有设置为支持多个 ODBC 连接(数据库管理员应该知道,关键参数是 -Mn、-Ma 和可能的 -Mpb)。
如果我这样做,我想我会通过针对不同的数据段启动多个 session 来简单地伪造多线程访问。
关于c# - 进步 4GL 和 .Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086638/