Создать базу данных в QT - PullRequest
       9

Создать базу данных в QT

0 голосов
/ 08 октября 2009

У новичка возникли проблемы при создании базы данных здесь. Следующий код компилируется нормально, но база данных не создается, и я не могу найти файл sqlite.

#include "makeDB.h"
#include <iostream>
#include <QString>
#include <QtSql>

void makeDB(QString dbName) {
   QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
   db.setHostName("localHost");
   db.setDatabaseName(dbName);
   db.setUserName("logger");
   db.setPassword("logger");
}

#include <QtGui/QApplication>
#include <QString>
#include <QtSql>
#include "mainwindow.h"
#include "makeDB.h"
#include "createTable.h"
#include "ui_mainwindow.h"


int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  MainWindow w;
  w.show();

  makeDB("log1");

  createTable();

  return a.exec();
}

Что я здесь не так делаю? Спасибо! Waynew Редактировать / Удалить сообщение

1 Ответ

3 голосов
/ 08 октября 2009

Мы не можем видеть, что вы createTable() делаете, код, который вы никогда не вызываете db.open(), большая часть базы данных QT и вызовы SQL возвращают bool для успеха, и есть функция lastError() для обоих QSqlDatabase и QSqlQuery звонки. Проверьте, если это уместно, то есть вызовы, то есть db.open() и query.exec() вернут false.

, например

bool makeDB(QString dbName) {
  QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  db.setHostName("localHost");
  db.setDatabaseName(dbName);
  bool result = db.open();
  if (result)
  {
    //do more processing
  }
  else
  {
    qDebug() << db.lastError().text()
  }
  return result;
}

Также я не думаю, что SqlLite поддерживает какой-либо тип аутентификации этот , кажется, указывает на то, что вы можете защитить свою базу данных, лицензируя расширение от создателей SqlLite.

Что касается фактического создания таблицы, то должен быть выполнен некоторый SQL, который выглядит следующим образом:

 CREATE TABLE (x int, y varchar);

в зависимости от столбцов, которые вы на самом деле хотите.

Это является соответствующей документацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...