Tworzenie bazy SQLite jeśli nie istniała

0

Witam,
Chcę używać bazy SQLite w Qt. W jaki sposób utworzyć bazę danych w katalogu użytkownika jeśli wcześniej nie istniała?

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtGui>
#include <QtSql>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QSqlTableModel model;
    QSqlDatabase db;
};

#endif // MAINWINDOW_H
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // create working directory
    QString homepath(QDir::home().path());
    QString app_path = homepath.append("/.usersdb");
    if(!QDir(app_path).exists())
        QDir().mkdir(homepath);
    QString db_path = app_path.append("/studenci.db");

    // connect to SQLite database
    db = QSqlDatabase::addDatabase("QMYSQL");
    db.setDatabaseName(db_path);

    if(!db.open()) {
        QMessageBox::information(this, tr("Polaczenie z baza"), tr("Nie udalo sie polaczyc z baza danych, tworzenie nowej pustej bazy."));
        // Utworz nowa baze danych (nie udalo sie utworzyc)

       // a nastepnie wykonaj kod tworzenia tabeli
    }
}

Oprócz tego w kodzie występuje jeszcze jeden problem: nawet jeśli baza zostanie utworzona poza programem to nie jestem w stanie się z nią połączyć.

Tracę sporo czasu i niestety program nie działa (kompiluje się, ale nie łączy). Będę wdzieczny za wszelkie wskazówki.

0

tutaj masz coś na ten temat: http://www.developer.nokia.com/Community/Wiki/CS001504_-_Creating_an_SQLite_database_in_Qt

A na pierwszy "rzut oka" widać że próbujesz otworzyć bazę MYSQL, pewnie dlatego Ci nie otwiera. Masz jakieś błędy przy "nie jestem w stanie się połączyć."?

0

Wszystkie błędy spowodowane były błędnie dobranym sterownikiem. :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1