Показать сообщение отдельно
Старый 13.08.2012, 18:13   #51
partizanes
Пользователь
 
Аватар для partizanes
 
Регистрация: 15.03.2010
Адрес: Беларусь,Витебск
Сообщений: 93
Сказал(а) спасибо: 97
Поблагодарили 36 раз(а) в 11 сообщениях
partizanes На верном пути
Отправить сообщение для partizanes с помощью ICQ Отправить сообщение для partizanes с помощью Skype™
По умолчанию

Доброго времени суток!

Подскажите ,столкнулся с фризом при использовании коннектора:
случай 1:
не доходим до блока finally
Код:
	try
	{
		conn->Open();
                return true;
	}

	catch (Exception^ exc)
	{
                return false;
	}

	finally
	{
		if (reader != nullptr)
			reader->Close();
	}
исправлял так :

Код:
	try
	{
		conn->Open();
		par = true;
	}

	catch (Exception^ exc)
	{
		MessageBox::Show("Exception: " + exc->Message);
		par = false;
	}

	finally
	{
		if (reader != nullptr)
			reader->Close();
	}

	return par;
проблема решена ;
теперь собственно вопрос:

есть функция которая делает запрос в базу:
блок чтения;
Код:
		while(reader->Read())
		{
			 check_turn(reader->GetString(0),reader->GetString(1),reader->GetDateTime(2));
		}
в функции check_turn
Код:
		while(reader->Read())
		{
			//THIS NEED CHECK FOR NULL
			sale = reader->GetString(0);
		}
получается мы имеем не закрытое соединение ?

p.s под фризом я имел ввиду в момент первого вызова фукнции ,приложения виснет от 3-10 секунд,даже бывает вываливается в таймаут . Последующие вызовы проходят мгновенно.


кхм пересмотрел всю свою писаннину и наверно понял что не в одном блоке финали не закрываю соединение

Код:
conn->Close();
правильно наверно так делать
Код:
		if(conn->State  == ConnectionState::Open)
			conn->Close();
__________________
Когда-нибудь на оффе поставят Mangos...

Последний раз редактировалось partizanes; 13.08.2012 в 18:49.
partizanes вне форума   Ответить с цитированием