Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Extended Stored Procedure, проблемы
|
|||
|---|---|---|---|
|
#18+
Написал xp, так мало того, что ее отлаживать невозможно, она не выгружается из памяти DBCC xp_perf (FREE) не работает, подменить DLL невозможно, только через рестарт сервера. Если произошел except в DLL в момент работы (отлаживаем !), то повторно xp не стартует, тупит ровно минуту и вываливается без сообщений. Просто подлости со всех сторон ! Кто имеет опыт написания и отладки xp, что скажут ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2002, 14:19 |
|
||
|
Extended Stored Procedure, проблемы
|
|||
|---|---|---|---|
|
#18+
1. Выгрузка из памяти: DBCC dllname (FREE). 2. Отладка. BOL->Contents->Building SQL Server Applications->Extended Stored Procedure Programming->Programming Extended Stored Procedures->Debugging an Extended Stored Procedure. Работает на ура. 3. С exception'ами у меня работа построена следующим образом: вызов каждого самого верхнего метода (то есть тот, который зовется из сиквела) обвернут try catch, причем намертво, в конце есть catch(...). Все ошибки, которые происходят, надо вернуть сиквелу в понятном ему виде. Для этого есть функция srv_sendmsg. Она используется для посылки как информационных сообщений, так и ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2002, 14:42 |
|
||
|
Extended Stored Procedure, проблемы
|
|||
|---|---|---|---|
|
#18+
Поднимать сервер для отладки я не могу в принципе, поэтому, то, что советуется в BOL, применить не могу, а вот про Try|catch не понял, какой метод вызывается из сервера ? Сервер проецирует DLL на себя, у DLL точка входа, через которую сервер вызывает функции DLL, там мы что-то пишем, связь обеспечивается библиотекой ODS, и если есть вызов srv_setcoldata (например), то он использует ODS Gateway, если malloc, то stdlib.lib ..... Так у меня засада в том, что except на CreatePipe происходит, я его ловлю по RETCODE, все путем , но после этого xp уже не работает до рестарта сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2002, 15:19 |
|
||
|
Extended Stored Procedure, проблемы
|
|||
|---|---|---|---|
|
#18+
>Поднимать сервер для отладки я не могу в принципе, поэтому, то, что советуется в BOL, применить не могу Фигово, что еще сказать. Если у вас вся разработка и отладка ведется на рабочей базе, то это ваши проблемы. Мне советы BOL вполне помогли. Про try catch. Внутри extended stored proc ты можешь вызывать еще кучу функций, делать кучу потенциально опасных действий и проч. Кидайся исключениями, вообще делай все, что хочешь, только на самом верхнем уровне поймай все и переведи в понятную сиквелу форму. Пример: SRVRETCODE xp_hello(SRV_PROC* pSrvProc) { try { // ... } // всякие типизированные catch'и, чтобы посылать осмысленное сообщение об ошибке catch(...) { MySendError(); // на крайний случай посылать сообщение о непонятной ошибке типа "Error occured" return(XP_ERROR); } return (XP_NOERROR); } В MySendError нужно формировать мессагу и посылать ее серверу через srv_sendmsg. Насколько я помню, никаких фатальных ошибок при таком способе написания не происходило. Рестарт сервера не нужен был. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2002, 09:09 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3517&tid=1824411]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
77ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 351ms |

| 0 / 0 |
