Adam Shakhabov
Adam Shakhabov

Reputation: 1346

How create and load SQLite in Qt?

I have a table (QTableWidget) with data. How I can to create a database SQLite and to save my data. Then I need the next time to load the data again? Thanks advance!

enter image description here

Upvotes: 0

Views: 696

Answers (1)

cee
cee

Reputation: 262

/*constructor ...*/
{

    ...

    /* create TableView to hold our db */
    pcbtv = new QPcbView(this);
    pcbtv->setModel(tabsort);
    pcbtv->setAlternatingRowColors(true);
    pcbtv->setSortingEnabled(true);
    pcbtv->setCornerButtonEnabled(false);
    pcbtv->setSelectionMode(QAbstractItemView::SingleSelection);
    pcbtv->setSelectionBehavior(QAbstractItemView::SelectRows);
    pcbtv->setEditTriggers(QTableView::NoEditTriggers); /* start read-only */
    pcbtv->resizeColumnsToContents();

    /* Header titles must be set on the model */
    pcbtv->model()->setHeaderData(PartNo_PartNo, Qt::Horizontal, "Part No");
    pcbtv->model()->setHeaderData(PartNo_Name, Qt::Horizontal, "Name");
    pcbtv->model()->setHeaderData(PartNo_GteNo, Qt::Horizontal, "GT-E Part No");
    pcbtv->model()->setHeaderData(PartNo_GteName, Qt::Horizontal, "GT-Electronics Name");

    QHeaderView* header = pcbtv->horizontalHeader();
    //header->setToolTip("bliblabloo");
    header->setAlternatingRowColors(true);
    header->setSectionsMovable(true);
    header->setStretchLastSection(true);
    pcbtv->setHorizontalHeader(header);

    ...

}

void PcbList::loadDb(QString filepath)
{
    openSqliteDb(filepath, "PARTNO");
}

void PcbList::openSqliteDb(QString dbname, QString table)
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName(dbname);
    db.open();
    qDebug() << "connected to db " << dbname;

    tabmod = new QSqlTableModel(this, db);
    tabmod->setTable(table);
    tabmod->setSort(PartNo_GteNo, Qt::AscendingOrder);
    tabmod->setEditStrategy(QSqlTableModel::OnFieldChange);
    tabmod->select();
}

Upvotes: 1

Related Questions