[[sqlite]]
 

do .pro pridat qt += sql

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlTableModel>
#include <QSqlRecord>
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
    QSqlDatabase db = QSqlDatabase::addDatabase ("QSQLITE");
    // db.setDatabaseName (":memory:");
    db.setDatabaseName ("test.sqlite");
    bool ok = db.open ();
 
    if (ok)
    {
        setWindowTitle ("O.K.");
 
        QSqlQuery query;
        query.exec ("CREATE TABLE colors"
        "(name TEXT PRIMARY KEY,"
          "red INT, green INT, blue INT)" );
 
        query.exec ("INSERT INTO colors (name, red, blue, green)"
          "VALUES ('modra', 0, 255, 0)");
 
        QSqlQuery insert (db);
        insert.prepare
        ("INSERT INTO colors (name, red, blue, green)"
          "VALUES (:n, :r, :b, :g)");
        insert.bindValue (":n", "blede modra");
        insert.bindValue (":r", 128);
        insert.bindValue (":g", 128);
        insert.bindValue (":b", 255);
        insert.exec ();
 
        query.exec ("SELECT * FROM colors");
        ui->tableWidget->setColumnCount(4);
        while (query.next ())
        {
            int n = ui->tableWidget->rowCount();
            n ++;
            ui->tableWidget->setRowCount (n);
 
            int r = query.value("red").toInt();
            int g = query.value("green").toInt();
            int b = query.value("blue").toInt();
            QColor c = QColor(r, g, b);
 
            for (int i = 0 ; i < 4; i ++)
            {
                QString s = query.value(i).toString();
                QTableWidgetItem * item = new QTableWidgetItem;
                item->setText (s);
                item->setBackgroundColor (c);
                ui->tableWidget->setItem (n-1, i, item);
            }
        }
 
        QSqlTableModel * model = new QSqlTableModel (this, db);
        model->setTable ("colors");
        model->select ();
        ui->tableView->setModel (model);
 
 
        QStringList list = db.tables ();
        for (int i = 0; i < list.size(); i++)
        {
            QString t = list [i];
            QTreeWidgetItem * item = new QTreeWidgetItem;
            item->setText (0, "table " + t);
            ui->treeWidget->addTopLevelItem(item);
 
            query.exec ("SELECT * FROM " + t);
            QSqlRecord rec = query.record();
            for (int k = 0; k < rec.count(); k++)
            {
              QTreeWidgetItem * p = new QTreeWidgetItem;
              p->setText (0, rec.fieldName(k));
              item->addChild (p);
            }
        }
 
 
    }
}
 
MainWindow::~MainWindow()
{
    delete ui;
}

v adresari debug-db-…

sqlite3 test.sqlite

.tables

select * from colors;

.quite

 
sqlite.txt · Last modified: 2015/03/23 17:09 by 147.32.8.110
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki