正在使用的句柄有什么用? 它应该用作数据类型还是对象?请解释缓冲区句柄的用法。
我遇到了以下一组带有句柄和缓冲区的行:
ON WRITE OF customer NEW BUFFER new_in OLD BUFFER old_in
do:
DEFINE VARIABLE m_obuf_hdl AS HANDLE NO-UNDO.
DEFINE VARIABLE m_nbuf_hdl AS HANDLE NO-UNDO.
ASSIGN m_obuf_hdl = BUFFER old_in:HANDLE
m_nbuf_hdl = BUFFER new_in:HANDLE.
end.
答案 0 :(得分:4)
HANDLE是ABL数据类型。 HANDLE的目的是成为内置对象类型的引用(指针),如代码中的Buffer。您将在"缓冲区对象句柄"下找到缓冲区的方法和属性。 ABL文档中的部分。此示例循环遍历缓冲区的所有字段(您的缓冲区old_in)并输出所有字段:
DEFINE VARIABLE i AS INTEGER NO-UNDO .
DEFINE VARIABLE hField AS HANDLE NO-UNDO .
DO i = 1 TO m_obuf_hdl:NUM-FIELDS:
ASSIGN hField = m_obuf_hdl:BUFFER-FIELD (i).
MESSAGE hField:NAME hField:BUFFER-VALUE.
END.