2012-11-27 45 views
1

我想插入一個字符到表中的一列。相反,該字符的十進制代碼被插入。我怎樣才能插入角色?QSqlQuery插入字符

詳細說明:

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」插入(字符的十進制碼),如果屬性「字符」隨後產生一個錯誤,該類型太短而無法存儲該值。

想法?

回答

2

在調用bindValue時,第二個參數是一個QVariant,但QVariant沒有接受char的構造函數。你的char可能被轉換爲int,因爲這是一個標準轉換,而不是QChar。您的QVariant是一個整數類型,並在bindValue期間轉換爲字符串。

您可以嘗試明確使用QChar則:

update.bindValue(0, QChar('F'));