...
Tässä
...
esimerkki
...
kuvaa
...
tiedon
...
hakua
...
olemassa
...
olevasta
...
tietokannasta.
...
Esimerkissä
...
tietokanta
...
on
...
Sqlite
...
tyyppinen
...
ja
...
sen
...
nimi
...
on
...
db.
...
Ensimmäinen
...
koodin
...
osa
...
kannattaa
...
tehdä
...
pääohjelmaan.
Code Block |
---|
} QFileInfo dbfile("dbSqlite"); if(dbfile.exists()) { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("dbSqlite"); 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; } {code} |
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; } {code} |
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 ); {code} |