Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

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}