1

我有这样的表:

     TABLE:
        LOAD * INLINE [
            SERVER
            'SERVERNAME1'
            'SERVERNAME2'
            ...
        ];

和循环:

FOR i = 1 to NoOfRows('TABLE')  

    LET v_TABLE = Peek('SERVER', $(i), 'TABLE');
    LET v_SPECIFICATION = FieldName(1, $(v_TABLE));

    trace $(v_TABLE);


    ...
    STATEMENTS
    ... 

NEXT

如果我重新加载它,什么也不会发生,尽管循环运行数千次,因为 Peek() 函数的结果始终为 NULL,而不是表中的值。是语法不正确,还是有其他错误?

4

1 回答 1

1

对不起,我的问题是错误的。在 Peek() 函数中,第三个参数不是字符串,而是一个变量(我不知道这会出错),经过多次尝试,我发现了两件事:

  • 在我的 QV 版本 11.20 中,我必须调用带有可变参数的函数,例如 v_SPECIFICATION,而不是 $(v_SPECIFICATION)(但不是变量 $(i),为什么???)
  • 并且表中的行从零开始编号(有时也是如此),所以这对我有用:

LET v_TABLE = Peek('SERVER', $(i) - 1, v_SPECIFICATION);

这对我来说真的很奇怪,但是边做边学......

于 2014-07-24T10:47:03.537 回答