我用Qt 4.4.3连接Oracle数据库,使用QTableView显示QSqlTableModel中的内容。
但是当我修改了BLOB字段的值,然后保存时失败,报上述错误,请问该怎么解决啊?
谢谢!
/* BlobItemDelegate从QItemDelegate继承
* 当QSqlTableModel的字段为BLOB是调用setItemDelegateForColumn(column, new BlobItemDelegate(this)); */
void BlobItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
{
if(_read_only)
return;
/* BlobEditer是自定义的一个控件,用来显示修改特定的二进制数据 */
BlobEditer * edit = qobject_cast<BlobEditer*>(editor);
/* edit->getData()返回修改后的数据,是QByteArray对象 */
model->setData(index, edit->getData(), Qt::EditRole);
}
报错:
QOCIResult::exec: unable to execute statement: ORA-00932: inconsistent datatypes : expected - got BLOB