|
DECLARE EXIT HANDLER в UDF???... :-((
|
|||
---|---|---|---|
#18+
Пишу в 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?... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2003, 15:00 |
|
DECLARE EXIT HANDLER в UDF???... :-((
|
|||
---|---|---|---|
#18+
Ну что, никто мне так ничего и не скажет?.... :-(( ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2003, 16:33 |
|
DECLARE EXIT HANDLER в UDF???... :-((
|
|||
---|---|---|---|
#18+
maybe, 'external function' is a good choice? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2003, 19:53 |
|
DECLARE EXIT HANDLER в UDF???... :-((
|
|||
---|---|---|---|
#18+
Тут вот еще что непонятно: ведь на DECLARE wrong_format CONDITION FOR SQLSTATE '22007'; он не ругается, все путем!.. Т.е. CONDITION-то мы объявили, и его это вполне устраивает!.. Но ЧТО с ним, кондишном, делать-то потом?... Как-то нелогично все это получается.... У меня отчетливое чувство, что это Я чего-то не понимаю, а делаться оно как-то должно... Только вот предложений, кроме как по поводу External Function, пока не поступало... В принципе, не проблема написать - как бы и Жабой знаком не по-наслышке, да и на Сях попИсывал временами - тока ведь не под DB2... Можно, видимо, и написать, но больно уж время поджимает (начальство имеет сильно), а судя по документации - там до-фига всего настраивать надо, чтобы все это компилилось, да подсасывалось куда надо... Тут ведь проблем-то еще и в том, что делаю я все это на своей базе, а переносить прийдется на рабочую!... А с этим тоже, судя по всему, все совсем непросто... Повторяю, я с DB2 знаком вообще пока еще весьма поверхностно, поэтому - вполне возможно, что не так уж все и страшно... Но, в таком случае, может кто мне даст краткий guide по поводу того, как писать External Functions на Жабе или Сях, и что потом со всем этим делать?.. Или - хотя-бы скажите, что КОНКРЕТНО почитать, а то в доках все уж как-то так размазано, что концов не соберешь.... А вообще, быстроты решения ради, да и вообще, для общего развития, хотелось бы, конечно, все-таки понять, как обрабатывать такие ситуации в UDF писаных на SQL.... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2003, 09:50 |
|
DECLARE EXIT HANDLER в UDF???... :-((
|
|||
---|---|---|---|
#18+
ну по поводу того, что в доках всё размазано - это сильно субъективно. Всё там конкретно описано - и настройка среды разработчика, и кокретно написание, и всякие хинты разработчику, и примеров много. А ежели доку еще и проиндексировать, и поиском пользоваться (многие http сервера это могут) то просто совсем великолепно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2003, 12:08 |
|
DECLARE EXIT HANDLER в UDF???... :-((
|
|||
---|---|---|---|
#18+
which OS? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2003, 17:41 |
|
DECLARE EXIT HANDLER в UDF???... :-((
|
|||
---|---|---|---|
#18+
У меня Windows 2000, DB2 UDB 8.1... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2003, 18:05 |
|
DECLARE EXIT HANDLER в UDF???... :-((
|
|||
---|---|---|---|
#18+
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(ыйдсщву) Х .... Ъ С Новым Годом ! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2003, 18:05 |
|
|
start [/forum/topic.php?fid=43&msg=32351085&tid=1606408]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 339ms |
total: | 490ms |
0 / 0 |