编辑 `TABLE-HANDLER` 以指向另一个 temp-table
Edit `TABLE-HANDLER` to point to another temp-table
我正在尝试覆盖参数处理程序,因此它会指向另一个具有不同架构的临时 table。
myProcedure.p
DEFINE TEMP-TABLE TT_RealTable NO-UNDO
BEFORE-TABLE TT_RealTableBefore
FIELD name AS CHAR
.
DEF INPUT-OUTPUT PARAM TABLE-HANDLE TH_NewTable.
CREATE TT_RealTable.
ASSIGN TT_RealTable.name = "Ben".
CREATE TT_RealTable.
ASSIGN TT_RealTable.name = "Harry".
TH_NewTable
指向具有不同架构和内容的随机参数 TEMP-TABLE
。我想用 TT_RealTable
覆盖此参数 TABLE-HANDLER
。如果我尝试设置:
TH_NewTable = TEMP-TABLE TT_RealTable:HANDLE.
程序将在运行时崩溃,提示 TT_RealTable 的 schema/meta 数据与处理程序的数据不匹配。
如何覆盖处理程序以指向我的 TT_RealTable:HANDLE
,并将其 return 作为输出?
如果架构与错误声明的不同,并且您在 post 开头说过,您想要做的事情将无法完成。您不能在过程结束时传递具有特定定义的临时 table 缓冲区句柄和 return 其他内容,假设参数 table 句柄来自静态临时 - table。即使不是,您也需要在调用过程后使用缓冲区句柄创建 temp-table ,我认为这不是您想要的,因为您的参数是输入输出。
如果您真的想使用就架构而言是流畅的 table,您应该阅读动态温度-tables。在帮助中查找 CREATE TEMP-TABLE 语句并通读示例以了解如何获得句柄然后(并且仅在那时)使用 return 构建一个 temp-table ed handle,所以你可以使用它。但是,您失去了使用常规语句的能力,例如 create 和 assign。您必须引用 BUFFER-FIELD 和 BUFFER-VALUE,并改用 CREATE 方法,使用缓冲区句柄。可能需要一段时间才能习惯,但这不是火箭科学。
希望对您有所帮助!
我正在尝试覆盖参数处理程序,因此它会指向另一个具有不同架构的临时 table。
myProcedure.p
DEFINE TEMP-TABLE TT_RealTable NO-UNDO
BEFORE-TABLE TT_RealTableBefore
FIELD name AS CHAR
.
DEF INPUT-OUTPUT PARAM TABLE-HANDLE TH_NewTable.
CREATE TT_RealTable.
ASSIGN TT_RealTable.name = "Ben".
CREATE TT_RealTable.
ASSIGN TT_RealTable.name = "Harry".
TH_NewTable
指向具有不同架构和内容的随机参数 TEMP-TABLE
。我想用 TT_RealTable
覆盖此参数 TABLE-HANDLER
。如果我尝试设置:
TH_NewTable = TEMP-TABLE TT_RealTable:HANDLE.
程序将在运行时崩溃,提示 TT_RealTable 的 schema/meta 数据与处理程序的数据不匹配。
如何覆盖处理程序以指向我的 TT_RealTable:HANDLE
,并将其 return 作为输出?
如果架构与错误声明的不同,并且您在 post 开头说过,您想要做的事情将无法完成。您不能在过程结束时传递具有特定定义的临时 table 缓冲区句柄和 return 其他内容,假设参数 table 句柄来自静态临时 - table。即使不是,您也需要在调用过程后使用缓冲区句柄创建 temp-table ,我认为这不是您想要的,因为您的参数是输入输出。
如果您真的想使用就架构而言是流畅的 table,您应该阅读动态温度-tables。在帮助中查找 CREATE TEMP-TABLE 语句并通读示例以了解如何获得句柄然后(并且仅在那时)使用 return 构建一个 temp-table ed handle,所以你可以使用它。但是,您失去了使用常规语句的能力,例如 create 和 assign。您必须引用 BUFFER-FIELD 和 BUFFER-VALUE,并改用 CREATE 方法,使用缓冲区句柄。可能需要一段时间才能习惯,但这不是火箭科学。
希望对您有所帮助!