1

我正在尝试将一个字符插入到表的列中。而是插入字符的十进制代码。如何插入字符?

细节:

QString insertSql;
insertSql
    .append("INSERT INTO ")
    .append(" table ")
    .append(" (direction) ")
    .append("VALUES (?)");
QSqlQuery update;
update.prepare(insertSql);

update.bindValue(0, 'F');

bool ex = update.exec();
qDebug() << update.lastError().type() << endl;
qDebug() << update.lastError().databaseText() << endl;
qDebug() << update.lastError().driverText() << endl;

如果表中的方向属性是varchar,我会插入字符串'70'(字符的十进制代码),如果属性'char'是则产生错误,即类型太短而无法存储值。

想法?

4

1 回答 1

2

在对 的调用中bindValue,第二个参数是 QVariant,但 QVariant 没有接受 char 的构造函数。您的 char 可能已转换为 int,因为这是标准转换,而不是 QChar。您的 QVariant 是整数类型,并在bindValue.

您可以尝试显式使用 QChar :

update.bindValue(0, QChar('F'));
于 2012-11-27T15:20:19.067 回答