命令来查找临时表中的条目数



查找临时表中的条目/行数的命令是什么? 版本 10.2b

/* create a temp-table so that we can test this technique
 */
define temp-table ttTest
  field id as int
.
create ttTest.
id = 1.
create ttTest.
id = 2.
/* how many records?
 */
define query q for ttTest cache 0.
open query q preselect each ttTest.
display num-results( "q" ).

或者你可以对每个使用clasic:

DEFINE VARIABLE iCount AS INT NO-UNDO.
FOR EACH ttTest:
  iCount = iCount + 1.
END.
DISPLAY iCount.
这是我

的,适用于任何临时表:

FUNCTION TT_NBREC RETURNS INTEGER ( INPUT pr_hd_temptable AS HANDLE ) :
    DEFINE VARIABLE in_nbrec  AS INTEGER   NO-UNDO INITIAL 0.
    DEFINE VARIABLE hd_buffer AS HANDLE    NO-UNDO.
    DEFINE VARIABLE hd_query  AS HANDLE    NO-UNDO.
    DEFINE VARIABLE ch_query  AS CHARACTER NO-UNDO.
    DEFINE VARIABLE ch_table  AS CHARACTER NO-UNDO.
    DEFINE VARIABLE lg_error  AS LOGICAL   NO-UNDO.
    ASSIGN
        ch_table = pr_hd_temptable:NAME
        ch_query = "FOR EACH " + ch_table + " NO-LOCK".
    CREATE BUFFER hd_buffer FOR TABLE ch_table.
    CREATE QUERY  hd_query.
    hd_query:ADD-BUFFER( hd_buffer ).
    lg_error = hd_query:QUERY-PREPARE( ch_query ) NO-ERROR.
    hd_query:QUERY-OPEN().
    hd_query:GET-FIRST().
    DO WHILE NOT hd_query:QUERY-OFF-END :
        ASSIGN in_nbrec = in_nbrec + 1.
        hd_query:GET-NEXT().
    END.
    hd_query:QUERY-CLOSE().
    DELETE OBJECT hd_query.
    DELETE OBJECT hd_buffer.
    ASSIGN
        hd_query  = ?
        hd_buffer = ?.
    RETURN in_nbrec.
END FUNCTION.

只需将临时表的句柄传递给它,您就可以获得记录数。它当然可以改进,但它对我来说足够快。

相关内容

  • 没有找到相关文章

最新更新