Asu*_*tes 5 c++ qt sql-server-express
我在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();
Run Code Online (Sandbox Code Playgroud)
但是,我明白了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());
Run Code Online (Sandbox Code Playgroud)
代码生成以下输出:
"ABC"
"\u0017"
"world"
"\u000B"
"Mama"
"\u000B"
"Gerama"
"\u000B"
Run Code Online (Sandbox Code Playgroud)
我怎样才能使它工作?
对于保存故事,我会说arg方法不起作用,因为你要求%2,但只有一个要替换的元素
query = QString("insert into timeHold(name,timeVar) values ('ABC','%2')").arg(timeString);
Run Code Online (Sandbox Code Playgroud)
我认为应该是
query = QString("insert into timeHold(name,timeVar) values ('ABC','%1')").arg(timeString);
Run Code Online (Sandbox Code Playgroud)
要从数据库中检索,可能是因为您必须在插入或读取时指定格式
归档时间: |
|
查看次数: |
125 次 |
最近记录: |