Pull to refresh

Comments 8

Господа, если что-то не понравилось и минисуем, то мне бы очень хотелось узнать причину. Т.к. я опубликовал свой код и мне важно знать ±. Так же интересует ваш взгляд на недостатки.
Ого :) А я думал, что OCI — наказание, оказывается все не так плохо :)
Это наказание, мне удалось плотно поработать с этой связкой(.NET + Oracle). Косяки и факапы начиная с разработки заканчивая развертыванием.
Когда я писал OCI — я имел в виду C/C++ :) И позволил себе порадоваться, что и у дотнетчиков жизнь тоже не сахар :)
Интересно. Для нуба в C# и .NET — расскажите, какая функциональность этого кода?
зы. Мне как бы для сравнения :)
Здесь я постарался уменьшить количество создаваемого кода, так фабрика занимается созданием команды и её наполнением. Сейчас я свой код расширил, добавив методы AddInParameter и AddOutParameter, избавившись от ParameterDirection и добавив большую наглядность коду. Плюс идёт обстрагирование от типа CLOB как такового, т.к. он создаётся со всемя типами на равне и не требует «явных танцев с бубном».
Ещё неплохо бы добавить возможность автоматически анализировать тип передаваемой переменной и создание параметра, тогда получилось бы вообще классно, можно бы было написать:
int someId = 10;

factory.AddInParameter(«SomeName», someId);

А уже в бэкграунде бы получилось приобразование это парамента в OracleType.Number, т.к. ещё меньше кода :); однако оставив возможность явно указать OracleType.
Но из-за того что я изначально накосячил с базом, ко мне сейчас последний пункт не применим.

Так же у класса есть автоматическая поддержка транзакций, т.е. выполнилось хорошо — закоммититься, плохо или прервали — коммита не будет. Не будут плодится лишние открытые курсоры и соединения с базой.

Утверждать что код потокобезопасный, я не берусь, т.к. в данном ключе не тестировал :)
Вобщем-то всё, немного сумбурно получилось, но если интересуют какие-то аспекты более «глубоко», спрашивайте :).

Ой-йо…

1. EntLib DAAB избавит от большей части банального кода
2. Использование ODP.NET вместо System.Data.OracleClient в нашем случае улучшило скорость работы с CLOB-полями в РАЗЫ
Когда CLOB передается как параметр в процедуру, он в System.Data.OracleClient вроде как имеет ограничения на размер, в отличие от ODP.NET
Sign up to leave a comment.

Articles