问题描述
我正在使用 AppBuilder,OpenEdge Progress 版本 11.6 中的过程编辑器。
最近我也开始使用 OpenEdge Debugger,也是 11.6 版。
我对以下源代码行有一些问题:
txt_Query = "FOR EACH Table1,...".
...
handle_Query:SET-BUFFERS ("Table1","Table2",...).
...
handle_Query:QUERY-PREPARE(txt_Query).
这意味着 txt_Query
和 handle_Query:SET-BUFFERS()
中提到的表格的顺序是不同的。
我想使用调试器检查当前订单,但这很麻烦,因为在数据视图中查看 handle_Query
时,我没有看到缓冲区的名称,但是我看到类似的东西:
MemberBuffer(1) 1063
MemberBuffer(2) 1064
MemberBuffer(3) 1065
MemberBuffer(4) 1066
MemberBuffer(5) 1067
有人知道如何(轻松)查看此内容吗?
提前致谢
解决方法
获得查询句柄值后,右键单击所选数据视图。
然后选择 MemberBuffer(1) 并单击查看按钮。
然后导航到 Name 属性
,您真的应该考虑迁移到 Developer Studio。这会让你的生活更轻松。
单击每个 MemberBuffer。点击“查看”
选择名称并点击“添加手表”
现在您可以看到按顺序排列的名称
用于此目的的演示程序:
public class ExampleClass
{
// DelegateNames = NameOfObject + Verb + ("ed" or "ing") + "Handler".
// NameOfObject = Data,File,Property,Value,Window,Settings,User,...
// Verb = Open,Close,Format,Clear,Delete,Create,Insert,Update,Refresh,Dispose,Sort,...
public delegate void SomethingHappenedHandler(object pSender,object pWhat);
public delegate void SomeValueChangedHandler(object pSender,object pWhat,object pOldValue,object pNewValue);
public delegate void SomethingFinishedHandler(object pSender);
public delegate void SomethingInvokedHandler();
// EventNames = DelegateName - "Handler".
public event SomethingHappenedHandler SomethingHappened;
public event SomeValueChangedHandler SomeValueChanged;
public event SomethingFinishedHandler SomethingFinished;
public event SomethingInvokedHandler SomethingInvoked;
// EventHandlingMethodNames = "On" + EventName.
private void OnSomethingHappened(object pSender,object pWhat) { /* Code...*/ }
private void OnSomeValueChanged(object pSender,object pNewValue) { /* Code...*/ }
private void OnSomethingFinished(object pSender) { /* Code...*/ }
private void OnSomethingInvoked() { /* Code...*/ }
// EventInvokingMethods = ("Fire" | "Notify" | "Invoke") + EventName.
private void FireSomethingHappened(object pSender,object pWhat) { /* SomethingHappened?.Invoke(...); */ }
private void NotifySomeValueChanged(object pSender,object pNewValue) { /* SomeValueChanged?.Invoke(...); */ }
private void InvokeSomethingFinished(object pSender) { /* SomethingFinished?.Invoke(...); */ }
private void NotifySomethingInvoked() { /* SomethingInvoked?.Invoke(...); */ }
}