0
CREATE QUERY ohQuery.
ohQuery:SET-BUFFERS(hBuffer).

OhQuery:QUERY-PREPARE("FOR EACH " + ip-tablename ).
ohQuery:QUERY-OPEN().
ohQuery:GET-FIRST().

ip-tablename = value from UI (combo box)

次に、このクエリ用の一時テーブルを作成する必要があります。作成方法は?

作成のようなメソッドを使用している場合、これにどの値を渡す必要がありますか?

4

1 に答える 1

2

実行時に一時テーブルを動的に作成するには、そのテーブルのバッファへのハンドル、またはテーブル名自体が必要です。'ip-tablename' のバッファへのハンドルを既に持っているので (hBuffer は 'ip-tablename' という名前のテーブルへのバッファであると想定しています。そうでない場合、上記のステートメントは機能しません)、そのハンドルを使用する必要があります。パフォーマンス上の理由からテーブル名を「ただ」ではなく。方法は次のとおりです。

DEF VAR ttH AS HANDLE NO-UNDO.
ttH:CREATE-LIKE(hBuffer).

必要に応じて、create に似たメソッドに 'ip-tablename' を使用することもできますが、同様のパフォーマンスは得られません。

ttH:CREATE-LIKE(ip-tablename).

新しい一時テーブルを使用する前に、一時テーブルの準備メソッドを使用する必要があることを忘れないでください。

ttH:TEMP-TABLE-PREPARE("myNewTempTable").

それが役立つことを願っています!

于 2012-02-20T08:11:11.687 に答える