Название: [РЕШЕНО] QSqlQuery & SELECT EXISTS Отправлено: psk07 от Октябрь 11, 2019, 15:07 Всем привет. Помогите пожалуйста найти ошибку в SELECT EXIST. Не могу пройти проверку value.
QSqlQuery query; QString strF = QString("SELECT EXISTS (SELECT " DEVICE_ORIG " FROM " DEVICE " WHERE ( " DEVICE_ORIG " = '%1' ) AND id NOT LIKE '%2' )"); QString str = strF.arg(ui.lineEdit->text(), model->data(model->index(mapper->currentIndex(), 0), Qt::DisplayRole).toString()); query.prepare(str); query.exec(); query.next(); // Если запись существует, то диалог вызывает предупредительное сообщение if (query.value(0) != 0) { QMessageBox::information(this, trUtf8("Error"), trUtf8("Such a log or comment already exists")); } Название: Re: QSqlQuery & SELECT EXISTS Отправлено: vbv от Октябрь 11, 2019, 17:33 query.value(0).toInt()!=0
А лучше if(query.value(0).toBool()){...} Или вообще без exist; if(query.next()){ // запись существует. } Название: Re: QSqlQuery & SELECT EXISTS Отправлено: vbv от Октябрь 11, 2019, 17:42 Всем привет. Помогите пожалуйста найти ошибку в SELECT EXIST. Не могу пройти проверку value. QSqlQuery query; QString strF = QString("SELECT EXISTS (SELECT " DEVICE_ORIG " FROM " DEVICE " WHERE ( " DEVICE_ORIG " = '%1' ) AND id NOT LIKE '%2' )"); QString str = strF.arg(ui.lineEdit->text(), model->data(model->index(mapper->currentIndex(), 0), Qt::DisplayRole).toString()); query.prepare(str); query.exec(); query.next(); // Если запись существует, то диалог вызывает предупредительное сообщение if (query.value(0) != 0) { QMessageBox::information(this, trUtf8("Error"), trUtf8("Such a log or comment already exists")); } И еще query.prepare("SELECT EXISTS (SELECT " DEVICE_ORIG " FROM " DEVICE " WHERE ( " DEVICE_ORIG " = :device_orig) AND id NOT LIKE :id; )"); query.bindValue(":device_orig", ui.lineEdit->text()); query.bindValue(":id", model->data(model->index(mapper->currentIndex(), 0), Qt::DisplayRole).toString()); query.exec(); ..... // скобочки не считал, мог немного напутать с их соответствием. Название: Re: QSqlQuery & SELECT EXISTS Отправлено: psk07 от Октябрь 14, 2019, 14:01 query.value(0).toInt()!=0 А лучше if(query.value(0).toBool()){...} Или вообще без exist; if(query.next()){ // запись существует. } Спасибо большое toBool()) очень выручил. |