2015-01-05 68 views
0

我有一个简单的按钮和一些行编辑和列表视图的形式。 在列表视图中,用户可以选择项目并在行编辑中编辑其参数。qsqltablemodel不兼容的数据类型

int row = listView->selectionModel()->currentIndex().row(); 
QString text = lineEdit->text(); 
sqlTableModel->setData(sqlTableModel->index(row,3),title,Qt::EditRole); 
sqlTableModel->submitAll(); //when this line is execeute i get an error 

错误:

QODBCResult::exec: Unable to execute statement: "[Microsoft][SQL Native Client][SQL Server]The data types varchar(max) and ntext are incompatible in the equal to operator. [Microsoft][SQL Native Client][SQL Server]Statement(s) could not be prepared." 
+0

如果你有可能改变数据表,你应该这样做。将列的数据类型从NTEXT转换为NVARCHAR(MAX)。 – user2672165

+0

@ user2672165 数据库中列的数据类型是varchar, 我试图将其更改为NTEXT和NVARCHAR,但它不起作用。 它总是显示我同样的错误。 –

+0

没有其他帮助? –

回答

0

我知道这个问题,今年2岁,但试图做到这一点在其他应用程序时,我发现了一个解决方案。所以这可能会对任何将谷歌它的人有用。

The data types varchar(max) and ntext are incompatible

在我已经使用数据类型NTEXT数据库,但Qt使用VARCHAR。所以解决方案是在我的问题中的第一个评论,我2年前不明白。唯一要做的是将数据库中的数据类型更改为varchar