Russian Qt Forum
Ноябрь 24, 2024, 16:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите локализовать баг  (Прочитано 2564 раз)
z11t3
Гость
« : Октябрь 11, 2010, 10:21 »

Доброе время суток.
Собираю свой-же старый проект, который стал вываливатся на таком коде:
Код:
				QSqlQuery sqlQuery(WriteSQLThread.pdb);
sqlQuery.prepare("SELECT * FROM ti ORDER BY tiid DESC LIMIT 1");
sqlQuery.exec();
sqlQuery.next();
Archiver.countTI = sqlQuery.value(0).toInt();//полученное количество записей в текущей рабочей таблице

sqlQuery.prepare("SELECT * FROM messages ORDER BY msgid DESC LIMIT 1");
sqlQuery.exec();///ВЫВАЛИВАЕТСЯ НА ЭТОЙ СТРОЧКЕ
sqlQuery.next();
Archiver.countMS = sqlQuery.value(0).toInt();//так-же для сообщений
Вываливается вот что:

Если ошибку проигнорить, далее аналогичные запросы выполняются:
Цитировать
sqlQuery.prepare("SELECT * FROM tc ORDER BY tcid DESC LIMIT 1");
            //sqlQuery.prepare("SELECT COUNT(*) FROM tc");
            sqlQuery.exec();
            sqlQuery.next();
            Archiver.countTS = sqlQuery.value(0).toInt();//аналогично для TC
Прошу помощи уважаемые комрады.
До этого участка кода, идёт некоторая успешная работа с БД:
Код:
boolean create_classificators (ChanelServer* CS)
{
//QTextCodec *codec1;
//codec1 = QTextCodec::codecForName("utf8");
//QTextCodec::setCodecForCStrings(codec1);
QString Value;

std::string IdentName;
int IdentNum1;
std::string str_ident;


QSqlQuery sqlQuery(WriteSQLThread.pdb);

sqlQuery.prepare("SET NAMES 'utf8'");//настройка кодировки общения с базой
sqlQuery.exec();

sqlQuery.prepare("truncate table msident");//удаление значений старого классификатора за ненадобностью
sqlQuery.exec();
{//получений из сервера каналов всех ident для MS
str_ident=CS->GetCSIdents()->MesIdents.FindFirstSectionIdent("Names");

while (str_ident!="")
{
IdentNum1=atoi(str_ident.c_str());
IdentName=CS->GetCSIdents()->GetMesName(IdentNum1);
Value = QString(IdentName.c_str());
Value ="'"+Value+"'"+ ","+"'"+str_ident.c_str()+"'";
if ((str_ident!="") & (IdentName!=""))
{
sqlQuery.prepare("insert into msident (ident, unical) values("+Value+")");
do
{
if (sqlQuery.exec())
{//NOerror
break;
}
else
{
LastError = WriteSQLThread.pdb.lastError().databaseText();
return false;
}
}while(true);
}
str_ident=CS->GetCSIdents()->MesIdents.FindNextSectionIdent();
}
}

sqlQuery.prepare("truncate table tiident");
sqlQuery.exec();
{//создание классификатора Ti
str_ident=CS->GetCSIdents()->TIIdents.FindFirstSectionIdent("Names");
while (str_ident!="")
{
IdentNum1=atoi(str_ident.c_str());
IdentName=CS->GetCSIdents()->GetTIName(IdentNum1);
Value = QString(IdentName.c_str());
Value ="'"+Value+"'"+ ","+"'"+str_ident.c_str()+"'";
if ((str_ident!="") & (IdentName!=""))
{
sqlQuery.prepare("insert into tiident (ident, unical) values("+Value+")");
do
{
if (sqlQuery.exec())
{//NOerror
break;
}
else
{
LastError = WriteSQLThread.pdb.lastError().databaseText();
return false;
}
}while(true);
}
str_ident=CS->GetCSIdents()->TIIdents.FindNextSectionIdent();
}
}
//создание классификатора TS
sqlQuery.prepare("truncate table tsident");
sqlQuery.exec();
{
str_ident=CS->GetCSIdents()->TSIdents.FindFirstSectionIdent("Names");
while (str_ident!="")
{
IdentNum1=atoi(str_ident.c_str());
IdentName=CS->GetCSIdents()->GetTSName(IdentNum1);
Value = QString(IdentName.c_str());
Value ="'"+Value+"'"+ ","+"'"+str_ident.c_str()+"'";
if ((str_ident!="") & (IdentName!=""))
{
sqlQuery.prepare("insert into tsident (ident, unical) values("+Value+")");
do
{
if (sqlQuery.exec())
{//NOerror
break;
}
else
{
LastError = WriteSQLThread.pdb.lastError().databaseText();
return false;
}
}while(true);//
}
str_ident=CS->GetCSIdents()->TSIdents.FindNextSectionIdent();
}
}
return true;
}

UPD:
Заметил что вылетает ошибка, в случае возврата запросом ноля записей.
В таблице messages их как-раз ноль
« Последнее редактирование: Октябрь 11, 2010, 11:04 от z11t3 » Записан
z11t3
Гость
« Ответ #1 : Октябрь 11, 2010, 11:31 »

Собственно локализовал  Рот на замке
Тему можно дропать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 21.