Hi ChrisW67, thanks for your suggestion.
Comment out the PRAGMA and see if the behaviour changes.
it does not make any different.
Does the table have a primary key?
yes, it has a primary key. here is my code
dbName
= QString(QApplication::applicationDirPath()).
append("/db/I-" + sDate.
toString("MMyyyy") + ".db");
mydb.setDatabaseName(dbName);
if (!QFile::exists(dbName
)) {
mydb.open();
query.exec("create table cycleParams (ID int primary key unique, "
"CNo int unique, DNo int, CName QString, "
"TSet int, TiSet int, DSet int, STime QString,"
"PTime QString, CycleTime QString, Status int, Spare QByteArray)");
mydb.close();
}
QDate sDate = QDate::currentDate();
QString dbName;
dbName = QString(QApplication::applicationDirPath()).append("/db/I-" + sDate.toString("MMyyyy") + ".db");
mydb = QSqlDatabase::addDatabase("QSQLITE");
mydb.setDatabaseName(dbName);
if (!QFile::exists(dbName))
{
mydb.open();
QSqlQuery query;
query.exec("create table cycleParams (ID int primary key unique, "
"CNo int unique, DNo int, CName QString, "
"TSet int, TiSet int, DSet int, STime QString,"
"PTime QString, CycleTime QString, Status int, Spare QByteArray)");
mydb.close();
}
To copy to clipboard, switch view to plain text mode
If you do not set the value at all what is in the column?
ok, i modified my code a little bit. and debugged through my program.
i did not initial two parameters at the beginning:
//query.exec("PRAGMA synchronous = OFF");
model->setTable("c1");
model->select();
model->insertRow(0);
model->setData(model->index(0, 1), gCNumber);
model->setData(model->index(0, 2), gDNumber);
model->setData(model->index(0, 3), gCName);
model->setData(model->index(0, 4), gSTemp);
model->setData(model->index(0, 5), gSTime);
model->setData(model->index(0, 6), gDTime);
model
->setData
(model
->index
(0,
7),
QString(qdatetime.
toString(Qt
::ISODate)));
model
->setData
(model
->index
(0,
8),
QString(qdatetime.
toString(Qt
::ISODate)));
//model->setData(model->index(0, 9), 0);
//model->setData(model->index(0, 10), 0);
model->setData(model->index(0, 11), "");
model->submitAll();
QSqlQuery query;
//query.exec("PRAGMA synchronous = OFF");
model = new QSqlTableModel(this);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->setTable("c1");
model->select();
model->insertRow(0);
model->setData(model->index(0, 1), gCNumber);
model->setData(model->index(0, 2), gDNumber);
model->setData(model->index(0, 3), gCName);
model->setData(model->index(0, 4), gSTemp);
model->setData(model->index(0, 5), gSTime);
model->setData(model->index(0, 6), gDTime);
model->setData(model->index(0, 7), QString(qdatetime.toString(Qt::ISODate)));
model->setData(model->index(0, 8), QString(qdatetime.toString(Qt::ISODate)));
//model->setData(model->index(0, 9), 0);
//model->setData(model->index(0, 10), 0);
model->setData(model->index(0, 11), "");
model->submitAll();
To copy to clipboard, switch view to plain text mode
then, i got a blank value
d1.png
after i submitted values:
model->setTable("c1");
model->select();
int row = model->rowCount() - 1;
model->setData(model->index(row, 10), gErrorCode);
model->setData(model->index(row, 9), gTotalCycleTime);
model->submitAll();
model->setTable("c1");
model->select();
int row = model->rowCount() - 1;
model->setData(model->index(row, 10), gErrorCode);
model->setData(model->index(row, 9), gTotalCycleTime);
model->submitAll();
To copy to clipboard, switch view to plain text mode
all past records in the same column have been changed.
d2.png
Bookmarks