问题标签 [openedge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
15340 浏览

linux - 无法加载 ODBC lib 指定的驱动程序

我正在尝试安装 ODBC 驱动程序,但我遇到了砖墙。

我的INI文件如下;

odbcinst.ini

odbc.ini

我已经确保所有依赖项都通过 ldd 正确加载。

更新

输出:strace isql -v http://pastebin.com/tXFY4vVt

输出:strace isql -3 SUBS2A http://pastebin.com/Yu5e54mR

输出:/tmp/odbctrace.out http://pastebin.com/0kgvNdWv

谢谢

0 投票
3 回答
4344 浏览

progress-4gl - Progress-4GL 写入日志文件

运行progress-4gl 程序时,我可以使用日志管理器写入日志文件。但是,在写出消息语句时,它们仅在我使用消息视图作为警报框时才会出现。IE:

将在日志文件中显示为:

[12/05/10@09:03:21.154-0700] P-11993170 T-000001 1 4GL -- 这将出现

有什么办法可以强制日志管理器写出包括视图作为警报框的消息语句?我们的遗留代码到处都使用消息语句,我宁愿不必通过所有相关的库来更新它。

0 投票
1 回答
1284 浏览

progress-4gl - 使用嵌入 .NET 控件的进度 opensge

有人可以指出如何将.NET 控件嵌入到进度应用程序中的正确方向。谢谢!!

编辑:我正在使用 10.2b

0 投票
1 回答
1122 浏览

progress-4gl - 如何使用openedge 11 版打开openedge 10 版字典?

我需要使用版本 11 数据库字典打开 opensge 版本 10 数据库。我正在尝试使用版本 11 打开数据库字典,但是一条消息说“使用 R10 数据字典打开此 R10 数据字典”。我可以使用 R11 数据库字典打开 R10 数据库吗?我对此没有任何想法。

谢谢。

0 投票
2 回答
209 浏览

include - 在包含文件中发生编译错误时获取 Compiler:Error-Row

有谁知道当包含文件中发生错误时是否可以获得正在编译的文件的错误行?

例如,我正在编译一个文件,比如 abc.p,它在所有地方都使用了 def.i。在某些时候,我对 abc.p 进行了更改,导致其中一个包含出现编译错误,因此消息说错误发生在 def.i 的第 123 行,但我想知道 abc 中的哪一行。 p 即。换句话说,使用有问题的包含文件的行号。

即使“Compiler:Get-File-Name(n)”返回 def.i 并且“Compiler:File-Name”返回 abc.p,“Compiler:Get-Row(n)”和“Compiler:Error- Row" 返回 def.i 中的行号。

有任何想法吗?

0 投票
1 回答
6928 浏览

progress-4gl - 如何在 OpenEdge SQL 中模拟 SELECT ... LIMIT、OFFSET?

在大多数 SQL 实现中,能够选择查询中返回的所有行的“滑动窗口”子集是很常见的事情。一个常见的用例是分页。例如,假设我有一个搜索页面,每页有 10 个结果。对于支持LIMITOFFSET关键字的实现,用于返回每个页面结果的查询如下:第一页将使用SELECT ... LIMIT 10 OFFSET 0,第二页将使用SELECT ... LIMIT 10 OFFSET 10,第三页将使用SELECT ... LIMIT 10 OFFSET 20,等等(注意在OFFSET之前生效LIMIT)。

无论如何,我试图在 OpenEdge 的 SQL 引擎中模仿这个功能。我已经发现SELECT TOP它基本上等同于LIMIT,但是我找不到任何类似的东西OFFSET(我认为没有确切的等价物)。SQL Server 和 Oracle 也缺少OFFSET,但它们分别有一个名为ROWCOUNTand的伪ROWNUM列,可用于模拟嵌套选择的行为(请参阅此处此处)。

10.2B SQL 参考文档中,p49 有一个标题为TOP 子句的小节,它在底部说

SELECT TOP是 Oracle 功能的等效ROWNUM 功能。请注意,SELECT TOP它只是根据结果集大小的限制来定义的,优化器确定如何使用此限制来实现最佳数据访问。因此,SELECT TOP并不具有所有用于定义 OracleROWNUM 短语含义的“程序规则”。

然而,这似乎是不准确的,因为根据TOP's 的语法它不能用作像ROWNUMcan 这样的谓词(例如,我不能说SELECT * FROM Customer WHERE TOP > 5 AND TOP < 10)。所以在功能TOP等同于ROWNUM.

有什么办法可以模仿OFFSET,还是我运气不好?

0 投票
2 回答
1213 浏览

c# - 如何使用 .NET 桥接在 Progress Openedge ABL 中使用属性装饰类、方法和属性?

我在工作中必须使用 Progress Openedge Architect,并且需要将一些 C# 代码转换为 ABL 代码(ABL 是语言名称)。所以我需要找到如何用 .NET 属性来装饰我的类、属性和方法。我搜索了本指南(http://documentation.progress.com/output/OpenEdge102b/pdfs/dvngm/dvngm.pdf),但在 C# 到 ABL 映射部分中没有提及装饰。

一个简单的 C# 示例:

感谢您对此的任何帮助!

亲切的问候,

加布里埃尔

0 投票
2 回答
843 浏览

progress-4gl - 如何在 cgi-wrapper 代码文件中管理 websession?

我正在使用 webspeed 开发一个 Web 应用程序。我的代码仅用 cgi-wrappers 编写。目前我正在管理wesession(所有案例)。现在的问题是,当我使用 F5 键刷新页面时,我的 .p 总是在创建一个新的会话 ID。我该如何处理.p中的这种情况?当代码写在 .html 文件中,但是当代码完全写在 .p 文件中时,这个问题不会出现

谢谢。

0 投票
2 回答
546 浏览

sql - Nhibernate 3.3.1 OpenEdge 方言从 Linq 生成 bad like 语句

我正在创建一个新的 NHibernate 方言以通过 ODBC 与 OpenEdge 10.2a 数据库一起使用。我一直在使用 NHibernate 2.1 中的方言没有问题,但是当将它移植到 NHibernate 3.3.1 时,我遇到了生成的查询 Like 语句的问题。

在 NHibernate 3.3.1 上使用方言时,使用startswith("sometest") 为linq 查询生成如下所示的类似语句。

自 NHibernate 2.1 以来,这种情况发生了变化,OpenEdge 数据库不支持这一点。NHibernate 2.1 中的相同查询如下所示:

我曾尝试使用 MsSql2005Dialect,这会将生成的 SQL 稍微更改为:

注意成为加号的管道。

是什么导致了这些变化,我该如何影响它,以便我可以让我的方言在 NH 3.3.1 上工作?

0 投票
3 回答
849 浏览

widget - 如何清除或删除包含我的静态类的未命名小部件池

我正在使用 Progress 10.1c

我有一个包含静态和非静态方法的类。

该类是用 USE-WIDGET-POOL 定义的。在析构函数中,我说“DELETE WIDGET-POOL”。

我创建了我的类的一个实例,并调用了一个方法。该方法本身使用类的静态方法之一。因此,如果我理解正确,我现在将在其自己的未命名池中拥有我的类的实例,并为类的静态成员提供一个单独的未命名小部件池。

到目前为止,一切都很好。但是我正忙于调试并且正在对代码进行更改。我重新编译并再次运行我的测试。现在我的非静态成员工作了,但是所有静态成员都来自我的类​​的旧版本,它仍然存储在静态成员池中,它的作用域是会话。换句话说,我的析构函数中的“DELETE WIDGET-POOL”删除了类实例的池,但静态成员的池仍然存在。

我可以让它加载我的课程的新版本的唯一方法是注销我的会话,然后再次登录。这在我们的环境中是一项艰巨的任务。每次进行更改时,我都必须停止并启动我的开发环境。

我试图在会话中遍历对象列表,但找不到我要查找的内容。我很有可能从错误的对象开始,或者我缺少一些关于池和正在进行的对象的知识。

有什么方法可以让我定位那个未命名的池并删除我班级的静态“实例”,而不会每次都破坏我的会话?