Informix - select 来自在带有交互式调试器的 4gl 中创建的临时 table?
Informix - select from a temp table created in a 4gl with Interactive debugger?
最近有很多 4gl 需要调试,其中大部分使用大量临时 tables。使用 "interactive" 调试器,我可以在插入 tmp_table 后中断。我想对 tmp_table 进行 select * 查询,在交互式调试器中是否可行?
或者如何在第 3 方 sql 客户端上执行此操作?一个简单的
select * 来自 tmp_table
将导致 错误:指定的 table (tmp_table) 不在数据库中。 (州:S0002,本机代码:FFFFFF32)
采用与 Jonathan 描述的类似方法,在以前的工作场所,我们有一个名称类似于 FUNCTION dump_temp_table(tablename)
的库函数,该函数将 table 名称作为参数并卸载 table 到文件 tablename.unl。您只需使用传递您感兴趣的 table 名称作为参数的调用命令从调试器调用该函数
使用 Genero,我很快就能够使用以下内容重新创建...
FUNCTION dump_temp_table(tablename)
DEFINE tablename STRING
DEFINE filename STRING
DEFINE sql STRING
LET sql = SFMT("SELECT * FROM %1",tablename)
LET filename = SFMT("%1.unl", tablename)
UNLOAD TO filename sql
END FUNCTION
...如果使用 4gl,您应该能够想出类似的东西(用 CHAR 等替换现代化的 Genero 语法,例如 STRING 和 SFMT)
最近有很多 4gl 需要调试,其中大部分使用大量临时 tables。使用 "interactive" 调试器,我可以在插入 tmp_table 后中断。我想对 tmp_table 进行 select * 查询,在交互式调试器中是否可行?
或者如何在第 3 方 sql 客户端上执行此操作?一个简单的 select * 来自 tmp_table 将导致 错误:指定的 table (tmp_table) 不在数据库中。 (州:S0002,本机代码:FFFFFF32)
采用与 Jonathan 描述的类似方法,在以前的工作场所,我们有一个名称类似于 FUNCTION dump_temp_table(tablename)
的库函数,该函数将 table 名称作为参数并卸载 table 到文件 tablename.unl。您只需使用传递您感兴趣的 table 名称作为参数的调用命令从调试器调用该函数
使用 Genero,我很快就能够使用以下内容重新创建...
FUNCTION dump_temp_table(tablename)
DEFINE tablename STRING
DEFINE filename STRING
DEFINE sql STRING
LET sql = SFMT("SELECT * FROM %1",tablename)
LET filename = SFMT("%1.unl", tablename)
UNLOAD TO filename sql
END FUNCTION
...如果使用 4gl,您应该能够想出类似的东西(用 CHAR 等替换现代化的 Genero 语法,例如 STRING 和 SFMT)