arilou: (Work)
Есть у "Оракла" простой сишный интерфейс OCI. Его, в частности, использует DBD::Oracle. И там они при ошибке вытаскивают информацию о том, на каком символе запроса "Оракл" возмутился. Что весьма полезно для отладки.
А есть ещё сиплюсплюсный интерфейс OCCI. Всё там обёрнуто в классы, ошибки обёрнуты в исключения, наружу торчат только методы. Естественно, есть класс SQLException, потомок std::exception, поддерживает и унаследованный what(), и своим методы имеет getErrorCode() и getMessage(). Вот только информацию о "плохом" месте в запросе он, конечно, не скажет. Чтобы её вытянуть самому - надо манипулятор (handler) запроса, который к моменту поимки исключения может уже и не сохраниться. Т.е. и ловить надо где-то глубже, да ещё и этот манипулятор откуда-то выцарапывать. Вроде бы у класса Statement его попросить можно. Но сколько же гемора до этого докопаться...

(Да, тем, кто любит вопрошать: "И нафига тебе сорцы? Часто ли ты в них смотришь?" - боюсь, без сишных сорцов DBD::Oracle проблем у меня было бы куда больше, а так я хоть нашёл, как это там делается.)
arilou: (Work)
Есть у "Оракла" простой сишный интерфейс OCI. Его, в частности, использует DBD::Oracle. И там они при ошибке вытаскивают информацию о том, на каком символе запроса "Оракл" возмутился. Что весьма полезно для отладки.
А есть ещё сиплюсплюсный интерфейс OCCI. Всё там обёрнуто в классы, ошибки обёрнуты в исключения, наружу торчат только методы. Естественно, есть класс SQLException, потомок std::exception, поддерживает и унаследованный what(), и своим методы имеет getErrorCode() и getMessage(). Вот только информацию о "плохом" месте в запросе он, конечно, не скажет. Чтобы её вытянуть самому - надо манипулятор (handler) запроса, который к моменту поимки исключения может уже и не сохраниться. Т.е. и ловить надо где-то глубже, да ещё и этот манипулятор откуда-то выцарапывать. Вроде бы у класса Statement его попросить можно. Но сколько же гемора до этого докопаться...

(Да, тем, кто любит вопрошать: "И нафига тебе сорцы? Часто ли ты в них смотришь?" - боюсь, без сишных сорцов DBD::Oracle проблем у меня было бы куда больше, а так я хоть нашёл, как это там делается.)
arilou: (Meditate)
Не случалось ли кому из xs вызывать обратно перловую функцию, желая прокинуть ей неизменнённый @_ ? А то в man perlcall в описании G_NOARGS сказано, что вроде как это можно, а на практике - вызываемая функция параметров не получает. ЧЯДНТ?

фрагмент из man perlcall )
arilou: (Meditate)
Не случалось ли кому из xs вызывать обратно перловую функцию, желая прокинуть ей неизменнённый @_ ? А то в man perlcall в описании G_NOARGS сказано, что вроде как это можно, а на практике - вызываемая функция параметров не получает. ЧЯДНТ?

фрагмент из man perlcall )

Profile

arilou: (Default)
Danil "Eleneldil G. Arilou" Lavrentyuk

February 2023

S M T W T F S
   1234
5678 91011
12131415 161718
192021222324 25
262728    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 23rd, 2025 11:37 am
Powered by Dreamwidth Studios