Re[3]: Есть стандарты или хотя бы рекомендации по oleDbConne
От: Matveyka Россия  
Дата: 03.06.04 08:16
Оценка:
Здравствуйте, Курдль, Вы писали:

M>>Говорят, что в .NET соединения (в том числе OleDb и SqlClient) кешируются.

M>>В результате, если ты много раз будешь отключаться-переподключаться, физически оно может и не "менять коней на переправе", так на одном соединении и работать физически.

К>В общем-то поэтому мой вопрос и возник.

К>ОДНАКО
К>Скорее всего мне не хватает знаний, чтобы это реализовать.
К>При проверке на СУБД Sybase ASA 8 и Oracle 9 каждое новое подключение из одного приложения вызывает открытие новой сессии.
К>Это, естественно, вызывает нарушения в привычной для меня логике программ — особенно в части касающейся транзакций.

M>>Во всяком случае, лично я просто всегда использую using или try/finally — и соединения чистоплотно закрываю.

К>Мне тоже приходится так же работать. Однако, это весьма не удобно — надо либо каждой форме, работающей с соединениями, передавать в конструкторе соединение (а для этого перекрывать конструктор), либо писать статические методы для получения соединения в отдельном модуле.

Вобщем-то, жестких ограничений тут нет. Работай, как тебе нравится. Можешь открыть коннект в главной форме и передавать в остальные переменную типа OleDbConnection. Только позаботься о том, чтобы при аварийном завершении программы у тебя не осталось открытого коннекта. А .NET без твоего ведома закрывать коннект не будет, если переменная OleDbConnection будет существовать.

Просто, почему-то, считается правилом хорошего тона открывать и закрывать коннект при каждой серии обращений к базе. У обоих подходов есть свои преимущества и недостатки. Но стандартов, как я уже сказал, нет. Для меня этот момент тоже в первый раз вызвал состояние, близкое к шоку, когда я отошел от чистого PL/SQL и начал писать на других языках.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.