AD
7th November 2008, 11:05
/// Добавление серийного номера
bool AddSerialNumber::add()
{
/// Иметь в виду, что длина строки = 9 байт. 9-й байт - конец строки. При генерации файла ключа выкидывать 9-й байт
while(element -> serialName.size() <= 8)
element -> serialName += (QChar)32;
int model = selectModelID();
QSqlTableModel model;
model.setTable("DeviceList");
//model.setEditStrategy(QSqlTableModel::OnManualSubm it);
model.select();
int row = model.rowCount();
bool k = model.insertRow(row);
model.setData(model.index(row, 0), element -> serialName);
model.setData(model.index(row, 1), element -> secret);
model.setData(model.index(row, 2), true);
model.setData(model.index(row, 3), modelID);
bool ins = model.submitAll();
string err = model.lastError().text().toStdString();
return ins;
}
This code does not insert record in table. I don't understand - why? That code is executed:
// Добавление серийного номера
bool AddSerialNumber::add()
{
while(element -> serialName.size() <= 8)
element -> serialName += (QChar)32;
int modelID = selectModelID();
QSqlQuery query;
QString insert_query1 = QString("insert into DeviceList(serialNumber, secretKey, security, modelID) "
"values('%1', '%2', %3, %4)").arg(element -> serialName).arg(element -> secret).arg(true).arg(modelID);
bool ins = query.exec(insert_query1);
return ins;
}
What is wrong? Why do I can't use QSqlTableModel?
bool AddSerialNumber::add()
{
/// Иметь в виду, что длина строки = 9 байт. 9-й байт - конец строки. При генерации файла ключа выкидывать 9-й байт
while(element -> serialName.size() <= 8)
element -> serialName += (QChar)32;
int model = selectModelID();
QSqlTableModel model;
model.setTable("DeviceList");
//model.setEditStrategy(QSqlTableModel::OnManualSubm it);
model.select();
int row = model.rowCount();
bool k = model.insertRow(row);
model.setData(model.index(row, 0), element -> serialName);
model.setData(model.index(row, 1), element -> secret);
model.setData(model.index(row, 2), true);
model.setData(model.index(row, 3), modelID);
bool ins = model.submitAll();
string err = model.lastError().text().toStdString();
return ins;
}
This code does not insert record in table. I don't understand - why? That code is executed:
// Добавление серийного номера
bool AddSerialNumber::add()
{
while(element -> serialName.size() <= 8)
element -> serialName += (QChar)32;
int modelID = selectModelID();
QSqlQuery query;
QString insert_query1 = QString("insert into DeviceList(serialNumber, secretKey, security, modelID) "
"values('%1', '%2', %3, %4)").arg(element -> serialName).arg(element -> secret).arg(true).arg(modelID);
bool ins = query.exec(insert_query1);
return ins;
}
What is wrong? Why do I can't use QSqlTableModel?