CREATE TABLE [Date] (
[dateid] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[date] Date UNIQUE NOT NULL
)
В таблицу записаны данные (смотрел SQLite Admin)
dateid date
1 15.10.2010
2 16.10.2010
3 19.10.2010
4 21.10.2010
Данные записывались из QDateEdit запросом:
query.prepare("INSERT INTO Date(date) VALUES(?)");
query.addBindValue(ui->dtAdd->date());
if(!query.exec()) {
QMessageBox::warning(this, "Error", "Unable to insert date");
}
При записи данных из формы я проверяю, записана ли выбранная дата (в моем случае 21.10.2010) из QDateEdit в базу:
QSqlQuery query;
query.prepare("SELECT date FROM Date WHERE date = VALUES(?)");
query.addBindValue(ui->dtAdd->date());
if(!query.exec()) {
qDebug() << query.lastError().text();
return;
}
Получаю сообщение: "Parameter count mismatch".
Хотелось бы получить ответы на следующие вопросы:
1. Как можно посмотреть полный текст запроса (после addBindValue). Я поставил точку останова до if(!query.exec()), но выделить текст запроса не смог.
2. Почему мой запрос с проверкой даты выполняется неправильно и как правильно написать запрос, в котором в качестве параметра используется значение QDateEdit?
Не нашел возможности на форуме внедрить свой проект, разместил его на http://zalil.ru/29849040.