Как создать временную таблицу с помощью динамического запроса - PullRequest
0 голосов
/ 20 февраля 2012
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)

Теперь мне нужно создать временную таблицу для этого запроса. Как создать?

Если я использую метод, похожий на создание, какое значение я должен передать в этом?

1 Ответ

2 голосов
/ 20 февраля 2012

Чтобы динамически создать временную таблицу во время выполнения, вам потребуется либо дескриптор буфера указанной таблицы, либо само имя таблицы. Поскольку у вас уже есть дескриптор буфера 'ip-tablename' (я предполагаю, что hBuffer является буфером таблицы с именем 'ip-tablename', в противном случае ваше приведенное выше утверждение не будет работать), вы должны использовать этот дескриптор вместо «просто» имя таблицы из соображений производительности. Вот как это сделать:

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

При желании вы также можете использовать 'ip-tablename' для метода create-like, хотя он также не работает:

ttH:CREATE-LIKE(ip-tablename).

Не забывайте, что вам нужно использовать метод подготовки временной таблицы, прежде чем вы сможете использовать новую временную таблицу:

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...