У меня есть таблица в SQL Server Express с полями name varchar(10)
и timeVar time
, и я хочу сохранить значение переменной QTime
в поле time
.
Это то, что япробовал:
QTime time = QTime::currentTime();
QString timeString = time.toString("hh:mm:ss");
QString query = QString("insert into timeHold(name,timeVar) values ('ABC','%2')").arg(timeString);
qry->prepare(query);
qry->exec();
Однако я получаю QSqlQuery::value: not positioned on a valid record
.
Когда я вставляю значения в таблицу из SQL Server Management Studio, insert into timeHold values('XYZ', '12:17:35')
работает отлично.К моему удивлению, когда я попытался прочитать значения, хранящиеся в таблице, из студии управления, мне удалось получить поле имени, но не поле времени.
Вот код, который я использую для чтения значенийиз таблицы:
QString query = QString("select * from timeHold");
qry->prepare(query);
qry->exec();
qry->first();
int noOfRecords = qry->numRowsAffected();
do {
qDebug() << qry->value(0).toString();
qDebug() << qry->value(1).toString();
} while (qry->next());
Код выдает следующий вывод:
"ABC"
"\u0017"
"world"
"\u000B"
"Mama"
"\u000B"
"Gerama"
"\u000B"
Как я могу заставить его работать?