![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
kobra |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
здравствуите господа
написал метод возвращающи dataReader,
так как ридер работает, значит конекшен сушествует, но если он существует, как же его уничтожить? но в принципе, после завершения метода все локалние обьекты автоматом удаляются, но тогда как ридер работает? я чего то не понемаю, или одно из двух ![]() |
||||
|
|||||
Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 5 Всего: 92 |
Чтобы закрыть соединение и очистить память надо вызвать
Не совсем. Уничтожаются только те, на которые не осталось ссылок. Но DataReader как раз хранит в себе ссылку на соединение, так что оно уничтожено не будет. PS: Что за странный стиль с двумя подчёркиваниями перед именем переменной? Первый раз такой вижу ![]() -------------------- Да. Именно так. |
||||
|
|||||
kobra |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
Это сообщение отредактировал(а) kobra - 18.12.2006, 12:57 |
||||||
|
|||||||
Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 5 Всего: 92 |
Я считаю, что вообще не стоит делать метод, возвращающий DataReader. Пусть уж он лучше возвращает OleDbCommand, через которую ты и до Connection доберёшься, и ExecuteReader выполнишь. Добавлено @ 13:05
Когда-нибудь да станет, но лучше (гораздо лучше) закрывать его вручную. -------------------- Да. Именно так. |
||||
|
|||||
kobra |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
![]() сначало так и делал, но подобних процедур много, и разница между ними только в цикле while (__DR.Read()), и __SelectText-е. так что решил вынести все что одинаковое. |
|||
|
||||
Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: нет Всего: 5 |
||||
|
||||
kobra |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
Pankon спосибо, я даже не закривал коннект.
но веть вопрос не в том, как закрыть, а втом как уничтожить (Dispose)
__DR.Dispose() делаю, тут просто. но что после этого будет с __Comm и __Conn? реално, в данном проекте это не актуално, но на будущее веть нужно понемать? |
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 5 Всего: 92 |
Методы Dispose и Close для Connection делают абсолютно одно и то же. Важно вовремя закрывать соединение, а вот когда будет уничтожен .NET-овский объект мы уже контролировать не можем. И что, самое главное, нам это и не нужно ![]() Распространено заблуждение о том, что Dispose в .NET -- это аналог delete в С++. Но это совершенно не верно. А Pankon, кстати, предложил очень хорошее решение. Я-то совсем забыл о такой возможности. Это сообщение отредактировал(а) Дрон - 20.12.2006, 13:31 -------------------- Да. Именно так. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Если убивать коннекшн но не команду и reader, они подберутся сборщиком мусора, ничего страшного в этом нет.
-------------------- ![]() |
|||
|
||||
Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: нет Всего: 5 |
||||
|
||||
kobra |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
![]() просто я не вижу когда будут удалени ссылки на эти обьекты. асальное все ерунда ![]() Добавлено @ 15:43 все господа. понял. все понял. всем спосибо! |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |