powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DECLARE EXIT HANDLER в UDF???... :-((
9 сообщений из 9, страница 1 из 1
DECLARE EXIT HANDLER в UDF???... :-((
    #32349332
George B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу в UDF (именно в UDF, а не в SP):

DECLARE wrong_format CONDITION FOR SQLSTATE '22007';
DECLARE EXIT HANDLER FOR wrong_format
RETURN -1;

Так вот, на DECLARE CONDITION не ругается, а на DECLARE EXIT HANDLER - ругается, говорит
[IBM][CLI Driver][DB2/NT] SQL0104N Обнаружен неправильный элемент "FOR" после текста "DECLARE EXIT HANDLER". Список правильных элементов: "<SQL_variable_condition_declaration>". LINE NUMBER=7. SQLSTATE=42601
Непонятно, его что, нельзя в UDF использовать?.. А как тогда в них обрабатывать SQLSTATE?...
...
Рейтинг: 0 / 0
DECLARE EXIT HANDLER в UDF???... :-((
    #32349531
George B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что, никто мне так ничего и не скажет?.... :-((
...
Рейтинг: 0 / 0
DECLARE EXIT HANDLER в UDF???... :-((
    #32349845
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybe, 'external function' is a good choice?
...
Рейтинг: 0 / 0
DECLARE EXIT HANDLER в UDF???... :-((
    #32350119
George B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут вот еще что непонятно: ведь на
DECLARE wrong_format CONDITION FOR SQLSTATE '22007';
он не ругается, все путем!.. Т.е. CONDITION-то мы объявили, и его это вполне устраивает!.. Но ЧТО с ним, кондишном, делать-то потом?... Как-то нелогично все это получается.... У меня отчетливое чувство, что это Я чего-то не понимаю, а делаться оно как-то должно... Только вот предложений, кроме как по поводу External Function, пока не поступало... В принципе, не проблема написать - как бы и Жабой знаком не по-наслышке, да и на Сях попИсывал временами - тока ведь не под DB2... Можно, видимо, и написать, но больно уж время поджимает (начальство имеет сильно), а судя по документации - там до-фига всего настраивать надо, чтобы все это компилилось, да подсасывалось куда надо... Тут ведь проблем-то еще и в том, что делаю я все это на своей базе, а переносить прийдется на рабочую!... А с этим тоже, судя по всему, все совсем непросто... Повторяю, я с DB2 знаком вообще пока еще весьма поверхностно, поэтому - вполне возможно, что не так уж все и страшно... Но, в таком случае, может кто мне даст краткий guide по поводу того, как писать External Functions на Жабе или Сях, и что потом со всем этим делать?.. Или - хотя-бы скажите, что КОНКРЕТНО почитать, а то в доках все уж как-то так размазано, что концов не соберешь.... А вообще, быстроты решения ради, да и вообще, для общего развития, хотелось бы, конечно, все-таки понять, как обрабатывать такие ситуации в UDF писаных на SQL....
...
Рейтинг: 0 / 0
DECLARE EXIT HANDLER в UDF???... :-((
    #32350455
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну по поводу того, что в доках всё размазано - это сильно субъективно.
Всё там конкретно описано - и настройка среды разработчика, и кокретно написание, и всякие хинты разработчику, и примеров много.
А ежели доку еще и проиндексировать, и поиском пользоваться (многие http сервера это могут) то просто совсем великолепно.
...
Рейтинг: 0 / 0
DECLARE EXIT HANDLER в UDF???... :-((
    #32351054
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
which OS?
...
Рейтинг: 0 / 0
DECLARE EXIT HANDLER в UDF???... :-((
    #32351084
George B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня
Windows 2000, DB2 UDB 8.1...
...
Рейтинг: 0 / 0
DECLARE EXIT HANDLER в UDF???... :-((
    #32351085
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w2k:

**************** перекомпиляция *********************
db2cmd

\VC98\Bin\VCVARS32.BAT
// малость поправить INCLUDE , db2 должна быть раньше VC

for example:
set INCLUDE=C:\VC98\ATL\INCLUDE;C:\Program Files\SQLLIB\INCLUDE;C:\Program Files\SQLLIB\LIB;C:\Program Files\SQLLIB\TEMPLATES\INCLUDE;C:\VC98\INCLUDE;C:\VC98\MFC\INCLUDE;C:\mqm\tools\c\include;C
:\mqm\tools\cplus\include;


// коннектимся к базе

db2 connect to database name

// прекомпилируем фай с функциями

db2 prep udffile.sqx bindfile

// делаем bind. в твоем тяжелом случае неохолимо знать опцию datetime

db2 bind udffile.bnd datetime iso

// ищем файлик *.cxx из него нужно сделать dll-ку. ( сам сделаешь)

*************** объявить func ****************

CREATE FUNCTION blablabla( чар 10 )
RETURNS INT
DETERMINISTIC
SQL
LANGUAGE C
PARAMETER STYLE DB2SQL
EXTERNAL NAME 'C:\udffile!func'
ALLOW PARALLEL;

может какие другие еще ключики укажешь

*** что примерно внутри, с параметрами сам разберешься ***

EXEC SQL INCLUDE SQLCA;


EXEC SQL BEGIN DECLARE SECTION;
char d [11];
sqlint32 y;
EXEC SQL BEGIN END SECTION;


/проверить дату

EXEC SQL VALUES ( DATA (:d) ) INTO :d;
switch(SQLCODE)
{
сase 180:
case 181:

// вот кривая дата

break;
....
}

получить г

EXEC SQL VALUES ( YEAR ( DATA (:d) ) ) INTO :y;

switch(ыйдсщву)
Х
....
Ъ


С Новым Годом !
...
Рейтинг: 0 / 0
DECLARE EXIT HANDLER в UDF???... :-((
    #32351109
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фю

сase -180:
case -181
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DECLARE EXIT HANDLER в UDF???... :-((
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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