 |
openPilotLog
|
25 #include <QSqlDatabase>
29 #include <QSqlTableModel>
34 #include "src/database/adatabasetypes.h"
35 #include "src/classes/aentry.h"
36 #include "src/classes/apilotentry.h"
37 #include "src/classes/atailentry.h"
38 #include "src/classes/aaircraftentry.h"
39 #include "src/classes/aflightentry.h"
40 #include "src/classes/astandardpaths.h"
41 #include "src/classes/acurrencyentry.h"
43 #define SQLITE_DRIVER QStringLiteral("QSQLITE")
52 #define aDB ADatabase::instance()
58 enum class ADatabaseTarget
60 airport_identifier_icao,
61 airport_identifier_iata,
62 airport_identifier_all,
71 enum class ADatabaseTable
83 enum class ADatabaseSummaryKey {
102 QString text()
const;
115 TableNames_T tableNames;
116 TableColumns_T tableColumns;
117 int databaseRevision;
120 int checkDbVersion()
const;
122 const static QStringList userTableNames;
123 const static QStringList templateTableNames;
124 const static int minimumDatabaseRevision;
136 const QFileInfo databaseFile;
140 void operator=(
const ADatabase&) =
delete;
193 QVector<QVariant>
customQuery(QString statement,
int return_values);
300 const QMap<QString, RowId_T>
getIdMap(ADatabaseTarget target);
333 QMap<ADatabaseSummaryKey, QString>
databaseSummary(
const QString& db_path);
347 QVector<RowData_T>
getTable(ADatabaseTable table_name);
381 #endif // ADATABASE_H
bool exists(AEntry entry)
Checks if an entry exists in the database, based on position data.
Definition: adatabase.cpp:256
bool restoreBackup(const QString &backup_file)
ADatabase::restoreBackup restores the database from a given backup file and replaces the currently ac...
Definition: adatabase.cpp:854
void updateLayout()
Updates the member variables tableNames and tableColumns with up-to-date layout information if the da...
Definition: adatabase.cpp:98
const QString databaseSummaryString(const QString &db_path)
returns a short summary string of the database, containing total time and date of last flight.
Definition: adatabase.cpp:769
bool clear()
clear resets the database, i.e. deletes all content in the tables containing userdata (pilots,...
Definition: adatabase.cpp:315
int getLastEntry(ADatabaseTable table)
returns the ROWID for the newest entry in the respective database.
Definition: adatabase.cpp:604
APilotEntry resolveForeignPilot(RowId_T foreign_key)
Resolves the foreign key in a flight entry.
Definition: adatabase.cpp:669
const QStringList getCompletionList(ADatabaseTarget target)
getCompletionList returns a QStringList of values for a QCompleter based on database values
Definition: adatabase.cpp:509
const ColumnNames_T getTableColumns(TableName_T table_name) const
Return the names of a given table in the database.
Definition: adatabase.cpp:88
void disconnect()
closes the database connection.
Definition: adatabase.cpp:164
Definition: aflightentry.h:23
APilotEntry getPilotEntry(RowId_T row_id)
retreives a PilotEntry from the database.
Definition: adatabase.cpp:474
Custom Database Error derived from QSqlError. Extends text() adding "Database Error: " before the tex...
Definition: adatabase.h:98
static int getMinimumDatabaseRevision()
getMinimumDatabaseRevision returns the minimum required database revision number required by the appl...
Definition: adatabase.cpp:73
QSqlError lastError
lastError extends QSqlError. Holds information about the last error that ocurred during a SQL operati...
Definition: adatabase.h:134
Definition: apilotentry.h:24
bool connect()
Connect to the database and populate database information.
Definition: adatabase.cpp:136
bool createBackup(const QString &dest_file)
ADatabase::createBackup copies the currently used database to an external backup location provided by...
Definition: adatabase.cpp:787
void connectionReset()
connectionReset is emitted whenever the database connection is reset, for example when creating or re...
const QString sqliteVersion() const
ADatabase::sqliteVersion returns the database sqlite version. See also dbRevision()
Definition: adatabase.cpp:127
void dataBaseUpdated()
updated is emitted whenever the database contents have been updated. This can be either a commit,...
QStringList getUserTableNames()
getUserTableNames returns a list of the table names of tables that contain user-created data (flights...
Definition: adatabase.cpp:83
QVector< QVariant > customQuery(QString statement, int return_values)
Can be used to send a complex query to the database.
Definition: adatabase.cpp:679
QMap< ADatabaseSummaryKey, QString > databaseSummary(const QString &db_path)
Return a summary of a database.
Definition: adatabase.cpp:708
AEntry getEntry(DataPosition data_position)
retreive an Entry from the database.
Definition: adatabase.cpp:467
const TableNames_T getTableNames() const
Return the names of all tables in the database.
Definition: adatabase.cpp:93
ATailEntry getTailEntry(RowId_T row_id)
retreives a TailEntry from the database.
Definition: adatabase.cpp:481
AFlightEntry getFlightEntry(RowId_T row_id)
retreives a flight entry from the database.
Definition: adatabase.cpp:495
AAircraftEntry getAircraftEntry(RowId_T row_id)
retreives a TailEntry from the database.
Definition: adatabase.cpp:488
Definition: adatabasetypes.h:44
Definition: atailentry.h:24
static QSqlDatabase database()
Can be used to access the database connection.
Definition: adatabase.cpp:171
The DB class encapsulates the SQL database by providing fast access to hot database data.
Definition: adatabase.h:110
bool remove(AEntry entry)
deletes an entry from the database.
Definition: adatabase.cpp:185
RowData_T getEntryData(DataPosition data_position)
retreive entry data from the database to create an entry object
Definition: adatabase.cpp:409
bool removeMany(QList< DataPosition >)
deletes a list of entries from the database. Optimised for speed when deleting many entries.
Definition: adatabase.cpp:214
ACurrencyEntry getCurrencyEntry(ACurrencyEntry::CurrencyName currency_name)
Retreives a currency entry from the database.
Definition: adatabase.cpp:502
QList< RowId_T > getForeignKeyConstraints(RowId_T foreign_row_id, ADatabaseTable target)
returns a list of ROWID's in the flights table for which foreign key constraints exist.
Definition: adatabase.cpp:632
Definition: aaircraftentry.h:24
QVector< RowData_T > getTable(ADatabaseTable table_name)
getTable returns all contents of a given table from the database
Definition: adatabase.cpp:805
Definition: acurrencyentry.h:7
ATailEntry resolveForeignTail(RowId_T foreign_key)
Resolves the foreign key in a flight entry.
Definition: adatabase.cpp:674
int dbRevision() const
dbRevision returns the database Revision Number. The Revision refers to what iteration of the databas...
Definition: adatabase.cpp:61
const QMap< QString, RowId_T > getIdMap(ADatabaseTarget target)
returns a QMap<QString, RowId_t> of a human-readable database value and its row id....
Definition: adatabase.cpp:558
bool commit(AEntry entry)
commits an entry to the database, calls either insert or update, based on position data
Definition: adatabase.cpp:176
The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...
Definition: aentry.h:40
QStringList getTemplateTableNames()
getTemplateTableNames returns a list of the table names of tables that contain template data (aiports...
Definition: adatabase.cpp:78
bool insert(AEntry new_entry)
Create new entry in the databse based on UserInput.
Definition: adatabase.cpp:365
bool update(AEntry updated_entry)
Updates entry in database from existing entry tweaked by the user.
Definition: adatabase.cpp:331