我在 SQL Server Express 中有一个包含字段的表name varchar(10)
and timeVar time
我想保存 a 的值QTime
变量在time
field.
这是我尝试过的:
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"
我怎样才能让它发挥作用?
对于节省的故事,我想说 arg 方法不起作用,因为您要求 %2 但只有一个元素可以替换
query = QString("insert into timeHold(name,timeVar) values ('ABC','%2')").arg(timeString);
我认为应该是
query = QString("insert into timeHold(name,timeVar) values ('ABC','%1')").arg(timeString);
对于从数据库检索,要么是因为您必须在插入或读取时指定格式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)