Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как получить список временных таблиц? / 7 сообщений из 7, страница 1 из 1
21.09.2007, 10:50
    #34816861
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список временных таблиц?
Или как получить список таблиц в текущей схеме?

Есть скрипт, который во время работы создает несколько QTemp'ов. Необходимо удалить их после его работы. Алгоритм такой: Сохроняем список QTemp'ов до работы и сверяем со списком после, лишние удаляем. Вопрос в том как получить список QTemp'ов.
...
Рейтинг: 0 / 0
21.09.2007, 13:36
    #34817660
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список временных таблиц?
В текущей схеме временные таблицы создать невозможно :))
Создайте временную таблицу для хранения имен временных таблиц.
...
Рейтинг: 0 / 0
21.09.2007, 14:01
    #34817823
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список временных таблиц?
gardenmanВ текущей схеме временные таблицы создать невозможно :))
Создайте временную таблицу для хранения имен временных таблиц.
Естественно что Временные таблицы создаются в схеме QTemp. Мне их список и надо получить.
...
Рейтинг: 0 / 0
21.09.2007, 14:35
    #34818012
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список временных таблиц?
select * from syscat.tables where tabschema='QTEMP'
...
Рейтинг: 0 / 0
21.09.2007, 15:34
    #34818259
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список временных таблиц?
gardenmanselect * from syscat.tables where tabschema='QTEMP'
Вот и попробуйте. А сначала подумайте: QTemp - для каждого своя, а syscat.tables - общая!
В связи с этим данный sql запрос будет выдавать пустое множество. Всегда.
Хотя проверить мне не удалось, так как работаю на iSeries. Но в аналоге этой таблицы в iSeries QTemp'ов нет!
...
Рейтинг: 0 / 0
25.09.2007, 16:18
    #34825137
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список временных таблиц?
Ну ответ на то как получить список QTemp'ов я получил:
CL: DSPOBJD OBJ(QTEMP/*ALL) OBJTYPE(*FILE) OUTPUT(*OUTFILE) OUTFILE(QTEMP/TABLELIST)
SELECT * FROM QTemp.TableList;

Внимание вопрос: Как заставить в Delphi TQuery выполнять(пересылать на сервер или ещё как) Control Language от iSeries???

Так как Код, приведенный выше, работает через iSeries Navigator, но не работает через TQuery.
...
Рейтинг: 0 / 0
26.09.2007, 09:43
    #34826539
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список временных таблиц?
WarstoneНу ответ на то как получить список QTemp'ов я получил:
CL: DSPOBJD OBJ(QTEMP/*ALL) OBJTYPE(*FILE) OUTPUT(*OUTFILE) OUTFILE(QTEMP/TABLELIST)
SELECT * FROM QTemp.TableList;

Внимание вопрос: Как заставить в Delphi TQuery выполнять(пересылать на сервер или ещё как) Control Language от iSeries???

Так как Код, приведенный выше, работает через iSeries Navigator, но не работает через TQuery.Есть хранимая процедура QSYS.QCMDEXC, которая может выполнять CL команды.
Я делал ей обертку (т.к. у нее неудобный вызов) типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
CREATE PROCEDURE QCMDEXC2
(
IN CMD VARCHAR( 4096 ),
OUT RC INT,
OUT MSG VARCHAR( 4096 )
)
LANGUAGE SQL
BEGIN 
DECLARE SQLCODE INTEGER;
DECLARE CMDLEN DECIMAL( 15 , 5 );

DECLARE EXIT HANDLER FOR SQLEXCEPTION 
 BEGIN
  GET DIAGNOSTICS EXCEPTION  1  
    RC =  DB2_RETURNED_SQLCODE,
    MSG = MESSAGE_TEXT;
--for V5R2 and earlier
--    SET RC = COALESCE(NULLIF(SQLCODE, 0), -1);
 END;

SET RC= 0 ;
SET MSG='';
SET CMD=TRIM(CMD);
SET CMDLEN = LENGTH(CMD);
CALL QSYS.QCMDEXC(CMD, CMDLEN);

END@
и использовал:
Код: plaintext
call qcmdexc2('DSPOBJD OBJ(QTEMP/*ALL) OBJTYPE(*FILE) OUTPUT(*OUTFILE) OUTFILE(QTEMP/TABLELIST)')
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как получить список временных таблиц? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]