Хочу узнать group_id имея group_name, вроде всё элементарно, надо всего лишь сделать так:
QString gr_id;
//find group Id
query_gr.exec("SELECT group_id, group_name FROM groups WHERE group_name = " + group);
QSqlRecord record_gr = query_gr.record();
gr_id = query_gr.value(record_gr.indexOf("group_id")).toString();//.toInt();
lineEdit->setText(gr_id);
но получаю пустой результат(
а в Application output пишет:
QSqlQuery::value: not positioned on a valid recordБазу использую SQLite, может проблема в том, что я уже обращался к базе? Может надо закрывать базу(отключаться от базы) перед сл. запросом?
createConnection();
//find last pc ID
QSqlQuery query, query_gr;
query.exec("SELECT pc_id, pc_name FROM pc WHERE pc_id = (SELECT MAX(pc_id) FROM pc)");
QSqlRecord record = query.record();
if (!query.isNull(0))
{
query.last();
old_id = query.value(record.indexOf("pc_id")).toInt();
old_id++;
}
else
old_id = 1;
QString gr_id;
//find group Id
query_gr.exec("SELECT group_id, group_name FROM groups WHERE group_name = " + group);
QSqlRecord record_gr = query_gr.record();
gr_id = query_gr.value(record_gr.indexOf("group_id")).toString();//.toInt();
lineEdit->setText(gr_id);
//Add new pc to DB
query.prepare("INSERT INTO pc VALUES (:new_id ,:new_group, :new_name, :new_ip, :new_comment)");
query.bindValue(":new_id", old_id);
query.bindValue(":new_group", gr_id);
query.bindValue(":new_name", pc_name);
query.bindValue(":new_ip", pc_ip);
query.bindValue(":new_comment", pc_comment);
// query.exec();