简体   繁体   English

如何使用 OpenEdge 调试器比较查询文本和缓冲区列表?

[英]How to compare query text and list of buffers, using OpenEdge debugger?

I'm working with appBuilder, procedure editor from OpenEdge Progress release 11.6.我正在使用来自 OpenEdge Progress 版本 11.6 的过程编辑器 appBuilder。

Recently I've also started working with the OpenEdge Debugger, also version 11.6.最近我也开始使用 OpenEdge 调试器,也是 11.6 版。

I have some troubles with the following lines of source code:我对以下源代码行有一些麻烦:

txt_Query = "FOR EACH Table1, ...".
...
handle_Query:SET-BUFFERS ("Table1", "Table2", ...).
...
handle_Query:QUERY-PREPARE(txt_Query).

The troubles are expressed by error message 7326, mentioning that the order of the buffers is wrong.问题由错误消息 7326 表示,其中提到缓冲区的顺序错误。

This means that the order of the tables, mentioned in txt_Query and handle_Query:SET-BUFFERS() is different.这意味着txt_Queryhandle_Query:SET-BUFFERS()中提到的表的顺序是不同的。

I'd like to check the current order, using the debugger, but this is quite a burden, as, when viewing handle_Query in the dataview, I don't see the names of the buffers, but I see something like:我想使用调试器检查当前顺序,但这是一个相当大的负担,因为在数据视图中查看handle_Query时,我看不到缓冲区的名称,但我看到如下内容:

MemberBuffer(1) 1063
MemberBuffer(2) 1064
MemberBuffer(3) 1065
MemberBuffer(4) 1066
MemberBuffer(5) 1067

Does anybody know how to (easily) view this?有人知道如何(轻松)查看这个吗?

Thanks in advance提前致谢

When you have the query-handle value, right-click an chose Dataview.当您拥有查询句柄值时,右键单击选择的 Dataview。

在此处输入图像描述

Then select MemberBuffer(1) and click on the View button.然后 select MemberBuffer(1) 并单击查看按钮。

Then navigate to the Name property然后导航到 Name 属性

在此处输入图像描述

You should really consider moving to Developer Studio.您真的应该考虑迁移到 Developer Studio。 That would make your life easier.那会让你的生活更轻松。

Right-click the object, select Dataview右键单击 object、select 数据视图在此处输入图像描述

Click each MemberBuffer.单击每个成员缓冲区。 Click "View"点击“查看”

在此处输入图像描述

Select Name and click "Add watch" Select 名称并单击“添加手表”

在此处输入图像描述

Now you have the names in order in view现在您可以按顺序查看名称

在此处输入图像描述

Demo program for this purpose:为此目的的演示程序:

DISPLAY "running".

DEFINE TEMP-TABLE tt NO-UNDO 
FIELD a AS INTEGER .

DEFINE TEMP-TABLE tt2 NO-UNDO 
FIELD a AS INTEGER.

DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.

CREATE QUERY hQuery.

hQuery:SET-BUFFERS(BUFFER tt:HANDLE , BUFFER tt2:HANDLE).

READKEY.

// Error here...
hQuery:QUERY-PREPARE("for each tt2, each tt") .

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM