我正在使用 IDS 11.70。
我希望能够获得临时表中列数的计数,因此在 4gl/genero 代码中,我可以有一个函数将正确数量的问号放入“放置游标”语句中。
例如,想要替换这种代码:
declare put_curs1 cursor for
insert into my_temp_table values(?,?,?,?,?,?)
像这样:
let str = "insert into my_temp_table values (
format_place_holder_string_for_insert( "my_temp_table" ) CLIPPED, ")"
prepare put_stment1 from str
declare put_curs1 cursor for put_stment1
我们已经为我们的常规表执行了此操作,因此如果应该将表模式更改为具有更多或更少的列,那么代码不会因使用 put 游标插入错误的列数而中断。在常规表的此函数中,要获取我们使用的列数:
select count(*)
from systables, syscolumns
where systables.tabname = table_name
and systables.tabid = syscolumns.tabid
但是在尝试为临时表执行此操作时,我看不到我加入的内容或表示临时表中有多少列的列。这是我到目前为止所拥有的:
select *
FROM sysmaster:systabnames n, sysmaster:systabinfo i, sysmaster:syssessions s
WHERE sysmaster:bitval(i.ti_flags, "0x0020") = 1
AND n.dbsname = database_name
AND i.ti_partnum = n.partnum
AND s.sid = dbinfo("sessionid")
AND n.tabname = table_name;
所以不是select *
我需要select count( columns )
- 但我在哪里加入以便我可以计算列?我四处寻找,但找不到我需要的加入。
谢谢,布莱斯斯坦伯格