.TH "Db" 3 "Sun Dec 27 2020" "openPilotLog" \" -*- nroff -*- .ad l .nh .SH NAME Db \- The \fBDb\fP class provides a basic API for accessing the database programatically\&. It is used to set up the initial connection and various basic queries can be executed using a set of static functions\&. When interfacing with the database for the purpose of adding, deleting or updating entries, the use of the entry class and its subclasses is recommended\&. This clas is not supposed to be instantiated, if you need a database object, use QSqlDatabase::database('qt_sql_default_connection');\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "enum \fBeditRole\fP { \fBcreateNew\fP, \fBeditExisting\fP }" .br .RI "The editRole enum {createNew, editExisting} is used to differentiate between creating a new entry in the database vs editing an existing one\&. " .ti -1c .RI "enum \fBmatchType\fP { \fBexactMatch\fP, \fBpartialMatch\fP }" .br .RI "The matchType enum {exactMatch, partialMatch} is used to determine the matching when using a WHERE sql statement\&. exactMatch results in a '=' operator, whereas partiasMatch results in a 'LIKE' operator\&. " .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBDb\fP (\fBDb\fP const &)=delete" .br .ti -1c .RI "void \fBoperator=\fP (\fBDb\fP const &)=delete" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBDb\fP & \fBget\fP ()" .br .ti -1c .RI "static void \fBconnect\fP ()" .br .RI "connect establishes the database connection\&. Only needs to be called once within the application\&. Database is available thereafter, objects can be instantiated with QSqlDatabase::database('qt_sql_default_connection') as required\&. " .ti -1c .RI "static void \fBdisconnect\fP ()" .br .RI "disconnect Closes and removes the default database connection\&. " .ti -1c .RI "static QSqlDatabase \fBDatabase\fP ()" .br .RI "Can be used to access the database connection\&. " .ti -1c .RI "static bool \fBexists\fP (QString column, QString table, QString checkColumn, QString value, \fBDb::matchType\fP match)" .br .RI "\fBDb::exists\fP checks if a certain value exists in the database with a sqlite WHERE statement\&. " .ti -1c .RI "static bool \fBsingleUpdate\fP (QString table, QString column, QString value, QString checkColumn, QString checkvalue, \fBDb::matchType\fP match)" .br .RI "\fBDb::singleUpdate\fP Updates a single value in the database\&. Query format: UPDATE table SET column = value WHERE checkcolumn =/LIKE checkvalue\&. " .ti -1c .RI "static QString \fBsingleSelect\fP (QString column, QString table, QString checkColumn, QString value, \fBDb::matchType\fP match)" .br .RI "singleSelect Returns a single value from the database with a sqlite WHERE statement " .ti -1c .RI "static QVector< QString > \fBmultiSelect\fP (QVector< QString > columns, QString table, QString checkColumn, QString value, \fBDb::matchType\fP match)" .br .RI "\fBDb::multiSelect\fP Returns multiple values from the database with a sqlite WHERE statement\&. " .ti -1c .RI "static QVector< QString > \fBmultiSelect\fP (QVector< QString > columns, QString table)" .br .RI "\fBDb::multiSelect\fP Returns a complete column(s) for a given table\&. " .ti -1c .RI "static QVector< QString > \fBcustomQuery\fP (QString query, int returnValues)" .br .RI "\fBDb::customQuery\fP Can be used to send a complex query to the database\&. " .in -1c .SH "Detailed Description" .PP The \fBDb\fP class provides a basic API for accessing the database programatically\&. It is used to set up the initial connection and various basic queries can be executed using a set of static functions\&. When interfacing with the database for the purpose of adding, deleting or updating entries, the use of the entry class and its subclasses is recommended\&. This clas is not supposed to be instantiated, if you need a database object, use QSqlDatabase::database('qt_sql_default_connection');\&. .SH "Member Function Documentation" .PP .SS "static QVector Db::customQuery (QString query, int returnValues)\fC [inline]\fP, \fC [static]\fP" .PP \fBDb::customQuery\fP Can be used to send a complex query to the database\&. .PP \fBParameters\fP .RS 4 \fIquery\fP - the full sql query statement .br \fIreturnValues\fP - the number of expected return values .RE .PP \fBReturns\fP .RS 4 QVector of results .RE .PP .SS "static QSqlDatabase Db::Database ()\fC [inline]\fP, \fC [static]\fP" .PP Can be used to access the database connection\&. .PP \fBReturns\fP .RS 4 a pointer to the default database connection .RE .PP .SS "static bool Db::exists (QString column, QString table, QString checkColumn, QString value, \fBDb::matchType\fP match)\fC [inline]\fP, \fC [static]\fP" .PP \fBDb::exists\fP checks if a certain value exists in the database with a sqlite WHERE statement\&. .PP \fBParameters\fP .RS 4 \fItable\fP - Name of the table .br \fIcolumn\fP - Name of the column .br \fIvalue\fP - The value to be checked .RE .PP \fBReturns\fP .RS 4 .RE .PP .SS "static QVector Db::multiSelect (QVector< QString > columns, QString table)\fC [inline]\fP, \fC [static]\fP" .PP \fBDb::multiSelect\fP Returns a complete column(s) for a given table\&. .PP \fBParameters\fP .RS 4 \fIcolumn\fP - QVector Names of the columns to be queried .br \fItable\fP - QString Name of the table .RE .PP \fBReturns\fP .RS 4 .RE .PP .SS "static QVector Db::multiSelect (QVector< QString > columns, QString table, QString checkColumn, QString value, \fBDb::matchType\fP match)\fC [inline]\fP, \fC [static]\fP" .PP \fBDb::multiSelect\fP Returns multiple values from the database with a sqlite WHERE statement\&. .PP \fBParameters\fP .RS 4 \fItable\fP - Name of the table .br \fIcolumns\fP - QVector Names of the columns to be queried .br \fIvalue\fP - Identifier for WHERE statement .br \fIcheckColumn\fP - column to match value to .br \fImatch\fP - enum Db::exactMatch or Db::partialMatch .RE .PP \fBReturns\fP .RS 4 QVector .RE .PP .SS "static QString Db::singleSelect (QString column, QString table, QString checkColumn, QString value, \fBDb::matchType\fP match)\fC [inline]\fP, \fC [static]\fP" .PP singleSelect Returns a single value from the database with a sqlite WHERE statement .PP \fBParameters\fP .RS 4 \fItable\fP - Name of the table .br \fIcolumn\fP - Name of the column .br \fIvalue\fP - Identifier for WHERE statement .br \fImatch\fP - enum Db::exactMatch or Db::partialMatch .RE .PP \fBReturns\fP .RS 4 QString .RE .PP .SS "static bool Db::singleUpdate (QString table, QString column, QString value, QString checkColumn, QString checkvalue, \fBDb::matchType\fP match)\fC [inline]\fP, \fC [static]\fP" .PP \fBDb::singleUpdate\fP Updates a single value in the database\&. Query format: UPDATE table SET column = value WHERE checkcolumn =/LIKE checkvalue\&. .PP \fBParameters\fP .RS 4 \fItable\fP Name of the table to be updated .br \fIcolumn\fP Name of the column to be updated .br \fIcheckColumn\fP Name of the column for WHERE statement .br \fIvalue\fP The value to be set .br \fIcheckvalue\fP The value for the WHERE statement .br \fImatch\fP enum Db::exactMatch or Db::partialMatch .RE .PP \fBReturns\fP .RS 4 true on success, otherwise error messages in debug out .RE .PP .SH "Author" .PP Generated automatically by Doxygen for openPilotLog from the source code\&.