From 302980f89000923b5997df047edda295c2439580 Mon Sep 17 00:00:00 2001 From: Daniel Jones Date: Thu, 4 Jan 2024 16:32:53 -0600 Subject: [PATCH] Database connection working, displaying verses. --- CMakeLists.txt | 6 +++++- mainwindow.cpp | 56 ++++++++++++++++++++++++++------------------------ mainwindow.h | 1 - mainwindow.ui | 5 ++++- 4 files changed, 38 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 903736e..e06c604 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,10 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) +find_package(Qt6 REQUIRED COMPONENTS Sql) + + + set(PROJECT_SOURCES main.cpp mainwindow.cpp @@ -43,7 +47,7 @@ else() endif() target_link_libraries(Daily_Bread PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) - +target_link_libraries(Daily_Bread PRIVATE Qt6::Sql) # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. # If you are developing for iOS or macOS you should consider setting an # explicit, fixed bundle identifier manually though. diff --git a/mainwindow.cpp b/mainwindow.cpp index 539381a..7050a70 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -11,13 +11,14 @@ #include #include #include - +#include +#include //Function declarations int current_day(); int current_month(); -QString verse_display(); -std::string verse_grab(); + +QString verse_grab(); MainWindow::MainWindow(QWidget *parent) @@ -25,9 +26,8 @@ MainWindow::MainWindow(QWidget *parent) , ui(new Ui::MainWindow) { ui->setupUi(this); - ui->verse->setText(verse_display()); - std::cout << current_day(); - std::cout << current_month(); + ui->verse->setText(verse_grab()); + } MainWindow::~MainWindow() @@ -38,23 +38,7 @@ MainWindow::~MainWindow() -/* - * Function: verse_display - * description: This function asks verse_grab to get the verse from the sqlite3 database, converts it - * to a format that QT can display, and then returns it to MainWindow. - * Return type: QString - * Param: none - */ -QString verse_display() -{ - std::string verse_text; - verse_text = verse_grab(); - - QString returned_string = QString::fromStdString(verse_text); - - return returned_string; -} /* @@ -63,18 +47,36 @@ QString verse_display() * Return type: string * Param: none */ -std::string verse_grab(){ +QString verse_grab(){ + - std::string my_verse; //gets current month and day and returns the result int curmonth = current_month(); int curday = current_day(); - std::string query = "select * from verses where day = " + std::to_string(curday) + " and month = " + std::to_string(curmonth); + std::string query_string = "select * from verse_list where day = " + std::to_string(curday) + " and month = " + std::to_string(curmonth); + QString q_query = QString::fromStdString(query_string); - //placeholder until I get the SQLlite3 connection working - my_verse = "hello world!"; + QString my_verse; + QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); + db.setDatabaseName("./verses.sqlite"); + + if(db.open()){ + + QSqlQuery query(db); + + if (query.exec(q_query)){ + query.next(); + + my_verse = query.value(1).toString(); + db.close(); + } return my_verse; + } + + + + return "error: sqlite database missing"; } diff --git a/mainwindow.h b/mainwindow.h index d8c4d94..b583345 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -1,6 +1,5 @@ #ifndef MAINWINDOW_H #define MAINWINDOW_H - #include QT_BEGIN_NAMESPACE diff --git a/mainwindow.ui b/mainwindow.ui index 9704670..b7d81e4 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -37,7 +37,7 @@ 10 20 361 - 161 + 271 @@ -46,6 +46,9 @@ Qt::AlignCenter + + true +