Доброго времени суток!
Подскажите ,столкнулся с фризом при использовании коннектора:
случай 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 секунд,даже бывает вываливается в таймаут . Последующие вызовы проходят мгновенно.
кхм пересмотрел всю свою писаннину и наверно понял что не в одном блоке финали не закрываю соединение
правильно наверно так делать
Код:
if(conn->State == ConnectionState::Open)
conn->Close();