...
Code Block |
---|
QFileInfo dbfile("dbdbSqlite"); if(dbfile.exists()) { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("dbdbSqlite"); if (!db.open()) { QMessageBox::critical(0, qApp->trUtf8("Projektia ei voitu avata"), qApp->trUtf8("Projektia ei voitu avata (ei tietokantayhteyttä)." ), QMessageBox::Close); return false; } } else { QMessageBox::critical(0, qApp->trUtf8("Tietokantaa ei ole"), qApp->trUtf8("Projektia ei voitu avata (ei tietokantayhteyttä)." ), QMessageBox::Close); return false; } |
Esimerkki funktiosta, joka hakee machine taulusta rivin, jossa ActiveMachine kentän arvo on yksi
Code Block |
---|
int MachineData::GetActiveMachinenID()
{
int rows,machineid;
QSqlQueryModel model;
model.setQuery("SELECT machine_id, ActiveMachine, NoCylinders, NoSensors FROM machine WHERE ActiveMachine = 1");
rows= model.rowCount();
if(rows<1)
{
QMessageBox::critical(0, trUtf8("Koneasetuksissa virhe,MachineData::GetActiveMachinenID"),
tr("Asetustietokannassa ei ole koneen asetuksia.\n Kone ei toimi!"),
QMessageBox::Close);
}
if(rows>1)
{
QMessageBox::critical(0, trUtf8("Koneasetuksissa virhe,MachineData::GetActiveMachinenID"),
tr("Asetustietokannassa on useita aktiivisia koneen asetuksia.\n Kone ei toimi!"),
QMessageBox::Close);
}
NumberOfSensors= model.record(0).value("NoSensors").toInt();//sijoitetaan kenttien arvot jäsenmuuttujiin
NumberOfCylinders= model.record(0).value("NoCylinders").toInt();
machineid=model.record(0).value("machine_id").toInt();
return machineid;
}
|
Sql esitys tietokannasta
Code Block |
---|
CREATE TABLE machine (
machine_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
customerName Text,
customerTel Text,
customerContact Text,
machineName Text,
NoCylinders Integer,
NoSensors Integer,
EstablishmentTime DATETIME,
ProjectNumber integer, --tämä on testauskoneen projektin numero siis EI testausprojektin
ActiveMachine Boolean, --1=konekonfiguraatio on käytössä, muilla ehdottomasti 0 muuten kone sekoaa
simulated BOOLEAN NOT NULL
);
|