Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Session ID / 11 сообщений из 11, страница 1 из 1
11.07.2007, 14:14
    #34653416
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
Здравствуйте ув. участники форума. Такая-вот проблема:
Есть 2 таблицы. Соотношение 1 к 1 (В одной запись 100-200 байт, в другой 8000-10000 соотв. по прошествию непродолжительного времени 2-я таблица будет чистится, тогда как 1-я будет жить) Надо проконтролировать связку... То есть: Делаю INSERT в 1-ю таблицу. Сам DB2 генерирует ID для записи, хочу его получить, но: Так как клиентов много, то запись получается не уникальная (если не принемать во внимание ID), но надо получить ID (для записи его во 2-ю таблицу) именно от записи, которую сделал именно я из именно этого приложения... В связи с этим появилась мысль, использовать ID сессии и внутренний номер запроса (обнуляется при запуске клиентского приложения), по идеи этого должно хватить чтоб поддержать уникальность записи (Вместо генерируемого ID). Но не могу найти каким запросом можно получить Session ID. Подскажите пож-ста... Или ссылкой киньтесь на доку... Мануалы читал, чегойт не нашел.

WBR Warstone
...
Рейтинг: 0 / 0
11.07.2007, 14:25
    #34653483
Alexey Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
Не проще:
GENERATE_UNIQUE()
&
CHARACTER(13) FOR BIT DATA
?

И посмотри тут Example 6 по поводу выборки данных из вставляемой записи.
...
Рейтинг: 0 / 0
11.07.2007, 14:32
    #34653506
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
Если вы про это:
INCLUDE
Specifies a list of columns to be included in the intermediate result table of the INSERT statement. This clause can only be specified if the INSERT statement is nested in the FROM clause of a fullselect.

То необходимо чтоб был FROM, а у меня 1 запись, где прям в SQL подставляются параметры... Вроде этого низзя. Хотя щас попробую.
...
Рейтинг: 0 / 0
11.07.2007, 14:44
    #34653558
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
Более того, в iSeries такого нету, по крайней мере в мануале я не нашел.
...
Рейтинг: 0 / 0
11.07.2007, 14:49
    #34653588
Alexey Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
Кто говорил про iSeries? У меня LUW и если точнее, то писал по схеме:
Код: plaintext
1.
2.
SELECT Q1.ID, Q1.NAME
FROM NEW TABLE(INSERT INTO LIST1 (NAME)
  VALUES('WEWE')) Q1(ID, NAME)
...
Рейтинг: 0 / 0
11.07.2007, 14:53
    #34653601
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
К сожалению у меня iSeries. Так что... тут этого вроде нету. Возвращаясь к вопросу... Как получить SessionID(SID)?
...
Рейтинг: 0 / 0
11.07.2007, 15:11
    #34653685
м.б.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
в LUW есть ApplID (в приложении можно например через через adminAPI получить), может в iseries аналогично?
...
Рейтинг: 0 / 0
11.07.2007, 15:34
    #34653801
афывфв
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
SessionID зто что? имя джоба чтоли.
его на С/С++ легко вытащить и сделать UDF или триггер
апишка(не путать командой) называется XXXUSRJOBI, где префикс XXX не помню.
я когда-то это делал, но это было давно
...
Рейтинг: 0 / 0
11.07.2007, 15:51
    #34653886
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
Я так понимаю что такой вещи нету...
Всем спасибо - разобрался. Делаю через последовательность. То есть сначала:
Код: plaintext
SELECT NEXT VALUE FOR <имя последовательности> AS Id FROM SYSIBM.SYSDUMMY1
Ну а потом уже INSERT в обе таблицы.
Ещё раз всем спасибо.
...
Рейтинг: 0 / 0
11.07.2007, 17:17
    #34654294
RomanSavelyev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
WarstoneЯ так понимаю что такой вещи нету...
Всем спасибо - разобрался. Делаю через последовательность. То есть сначала:
Код: plaintext
SELECT NEXT VALUE FOR <имя последовательности> AS Id FROM SYSIBM.SYSDUMMY1

При создании последовательности - обратите внимание на кэш.
Если он будет слишком малым - последовательность станет бутылочным горлом.
Старайтесь сделать его таким, чтоб кэша хватило на пару-тройку секунд работы.
Но можно "попасть" на "дырку" в нумерации в случае rollback-ов, впрочем, обычно этьо не важно.
...
Рейтинг: 0 / 0
12.07.2007, 06:53
    #34655084
Alexey Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session ID
WarstoneЗдравствуйте ув. участники форума. Такая-вот проблема:
..... Но не могу найти каким запросом можно получить Session ID. Подскажите пож-ста... Или ссылкой киньтесь на доку... Мануалы читал, чегойт не нашел.

WBR Warstone

Заюзай
Код: plaintext
SELECT SYSFUN.application_id() AS APP_ID FROM SYSIBM.SysDummy1
можешь например в триггере или в процедуре или прямо с клиента
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Session ID / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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