|
|
|
Рефакторинг DAL
|
|||
|---|---|---|---|
|
#18+
Господа, возникла следующая проблема: 1. Имеется некий здоровенный проект, использующий базу Oracle (ну это по сути не важно, я просто описываю конкретную ситуацию) и стандартный .NET Framework Oracle Data Provider. 2. DAL построен с помощью типизированных датасетов, адаптеров (XSD генератор - свой). Кроме того, по всему коду разбросаны OracleConnection, OracleCommand и т.д. 3. Многие исключения, возникающие в OracleCommand, перехватываются не по месту возникновения, а выше по стеку, т.е. непосредственного доступа к OracleCommand нет. Проблема: необходимо при возникновении OracleException сгенерировать новое исключение, добавив в него необходимую информацию. В данном конкретном случае это тескт запроса и список параметров со значениями. Путь первый (который мне очень не нравится) - сделать обёртку над OracleCommand (а заодно и над адаптерами), которая позволит мне добавить все необходимые расширения. Но в этом случае придётся отрефакторить вообще весь проект, что не есть гуд. В общем, я пытаюсь найти решение, которое позволит малой кровью получить требуемый результат. Обращаюсь ко всем, кто может хоть что то предложить по данному сабжу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 07:07 |
|
||
|
Рефакторинг DAL
|
|||
|---|---|---|---|
|
#18+
судя по всему ты хочешь, чтобы текст запроса у тебя внезапно возник из воздуха. Чудес не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 16:05 |
|
||
|
Рефакторинг DAL
|
|||
|---|---|---|---|
|
#18+
зысудя по всему ты хочешь, чтобы текст запроса у тебя внезапно возник из воздуха. Чудес не бывает. Ну это как посмотреть:) Вот, например, опишу один из вариантов. Имеется некая утилитка, которая способна перехватывать все запросы, которые выполняются на Оракле от заданного процесса. Это на шаг приближает к решению задачи, остаётся проблема сопоставления этой информации с конкретной командой клиента (ну то есть нужно точно знать, что именно эта команда вызвала исключение). Ну это, оговорюсь, всего лишь вариант, в текущей ситуации он был признан неприемлимым по некоторым причинам. А вот ещё один вариант для работающих с Framework 3.5 - методы расширения. Мне ещё с 3.5 поработать не удалось, но насколько я успел понять, это как раз может помочь (может и ошибаюсь). Может для кого то это как раз и есть чудеса из воздуха;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 13:51 |
|
||
|
Рефакторинг DAL
|
|||
|---|---|---|---|
|
#18+
VILNET А вот ещё один вариант для работающих с Framework 3.5 - методы расширения. Мне ещё с 3.5 поработать не удалось, но насколько я успел понять, это как раз может помочь (может и ошибаюсь). ну вперед, как только родишь это через расширения, и достанешь из воздуха инфу, расскажешь :) кхе-кхе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 14:12 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=86&tid=1352414]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 313ms |

| 0 / 0 |
