2015-01-05 2 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.

Смежные вопросы