У меня проблема со вставкой данных в базу данных SQLite с использованием QSqlTableModel. Таблица создана так:
QSqlQuery createTblSMS("CREATE TABLE sms_tbl("
"isRead BOOLEAN NOT NULL,"
"readTime DATETIME,"
"arrivalTime DATETIME NOT NULL,"
"sender TEXT NOT NULL,"
"receiver TEXT NOT NULL,"
"smsContent TEXT,"
"PRIMARY KEY(arrivalTime, sender, receiver));");
Я вставляю записи следующим образом:
smsModel->insertRecord(-1, sms);
QString error = smsModel->lastError().text();
smsModel->submitAll();
smsModel - это QSqlTableModel.
Если я поставлю, например, запись с этими значениями (false, NULL, '2010-06-30 17:27:55', '075710383', 'ONE 142140', 'TOP 15 # 2') - запись вставлен.
После этой записи, если поставить, например, запись с этими значениями (false, NULL, '2010-06-30 10:05:29', '075710383', 'ONE 142140', 'TOP 15 # 3') - также эта запись вставлен.
Но если я попытаюсь повторно вставить запись (false, NULL, '2010-06-30 17:27:55', '075710383', 'ONE 142140', 'TOP 15 # 2'), которая уже находится в В базе данных smsModel выдаст ошибку, подобную этой: «столбцы прибытие, отправитель, получатель не являются уникальными. Невозможно получить строку» - что ожидается. Любые другие последующие вставки уникальных записей завершатся неудачно, и модель выдаст мне ту же ошибку. У вас есть какие-либо подсказки, почему это происходит?