Russian Qt Forum

Qt => Базы данных => Тема начата: lokoArt от Январь 14, 2010, 07:49



Название: Объявление QSqlQuery
Отправлено: lokoArt от Январь 14, 2010, 07:49
Приветв всем.
Знатоки, подскажите подалуйста в чём проблема.
Есть 2 кода, которые выполняют одно и тоже, только проблема заключается в том, что первые 2 кода работаю, а последний нет:

Код:
bool res;
QSqlQuery* query;
if(!db.open()){
return 1;
st.setText(db.lastError().databaseText());
st.exec();
}
else{
query = new QSqlQuery();
res = query->exec("INSERT INTO CLIENTS VALUES('"+name+"', '"+surname+"', '"+patronymic+"', '"+dateOfBirthday+"', '"+address+"')");
}
return res;

Код:
bool res;

if(!db.open()){
return 1;
st.setText(db.lastError().databaseText());
st.exec();
}
else{
QSqlQuery query;
res = query.exec("INSERT INTO CLIENTS VALUES('"+name+"', '"+surname+"', '"+patronymic+"', '"+dateOfBirthday+"', '"+address+"')");
st.setText(query.lastError().databaseText());
st.exec();
}
return res;

Код:
bool res;
QSqlQuery query;
if(!db.open()){
return 1;
st.setText(db.lastError().databaseText());
st.exec();
}
else{
res = query.exec("INSERT INTO CLIENTS VALUES('"+name+"', '"+surname+"', '"+patronymic+"', '"+dateOfBirthday+"', '"+address+"')");
st.setText(query.lastError().databaseText());
st.exec();
}
return res;



Название: Re: Объявление QSqlQuery
Отправлено: ecspertiza от Январь 14, 2010, 08:51
Потому что в первых двух случаях БД открывается до создания QSqlQuery ,а в последнем сначала создается QSqlQuery ,а потом открывается БД и получается что QSqlQuery грубо говоря не имеет ссылку на объект для работы с БД :) 


Название: Re: Объявление QSqlQuery
Отправлено: lokoArt от Январь 14, 2010, 09:02
ААА!!! Спасибо большое))) :)