Isis 3 Programmer Reference
SqlQuery.h
1 #ifndef SqlQuery_h
2 #define SqlQuery_h
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 #include <string>
13 #include <vector>
14 #include <iostream>
15 #include "IException.h"
16 #include "Database.h"
17 #include <QSqlQuery>
18 #include <QSqlError>
19 
20 namespace Isis {
21 
22  class SqlRecord;
23 
138  class SqlQuery : public QSqlQuery {
139  public:
140  SqlQuery();
141  SqlQuery(Database &db);
142  SqlQuery(const std::string &query,
144  SqlQuery(const SqlQuery &other);
145  virtual ~SqlQuery() { }
146 
153  bool isThrowing() const {
154  return (_throwIfFailed);
155  }
156 
161  _throwIfFailed = true;
162  }
167  _throwIfFailed = false;
168  }
169 
170  bool exec(const std::string &query);
171  bool exec() {
172  return(QSqlQuery::exec());
173  }
174  std::string getQuery() const;
175 
176  int nFields() const;
177  std::string fieldName(int index) const;
178  int fieldIndex(const std::string &name) const;
179  std::vector<std::string> fieldNameList() const;
180  std::vector<std::string> fieldTypeList() const;
181 
182  int nRows() const;
183  SqlRecord getRecord() const;
184 
185  private:
187 
188  void tossQueryError(const std::string &message, const char *f, int l) const;
189  };
190 }
191 #endif
Isis::SqlQuery::setNoThrowOnFailure
void setNoThrowOnFailure()
Turns throwing of iExceptions off on errors.
Definition: SqlQuery.h:166
Isis::SqlQuery::fieldName
std::string fieldName(int index) const
Returns the column name of the resulting query at the given index.
Definition: SqlQuery.cpp:166
Isis::Database::Connect
@ Connect
Connect to database immediately.
Definition: Database.h:74
Isis::SqlQuery::fieldIndex
int fieldIndex(const std::string &name) const
Returns index of column for given name.
Definition: SqlQuery.cpp:181
Isis::SqlQuery::fieldNameList
std::vector< std::string > fieldNameList() const
Returns the names of all fields in the resulting query.
Definition: SqlQuery.cpp:198
Isis::SqlQuery::fieldTypeList
std::vector< std::string > fieldTypeList() const
Returns the types of each field/column in a resutling query.
Definition: SqlQuery.cpp:215
Isis::SqlQuery::getQuery
std::string getQuery() const
Returns the executed query string.
Definition: SqlQuery.cpp:133
Isis::SqlQuery::setThrowOnFailure
void setThrowOnFailure()
Sets throwing of exceptions on errors to true.
Definition: SqlQuery.h:160
Isis::SqlQuery::nFields
int nFields() const
Returns the number of fields (columns) from query.
Definition: SqlQuery.cpp:150
Isis::SqlQuery::tossQueryError
void tossQueryError(const std::string &message, const char *f, int l) const
Issues an IException from various sources of error states in this class.
Definition: SqlQuery.cpp:278
Isis::Database
Isis database class providing generalized access to a variety of databases.
Definition: Database.h:70
QSqlQuery
Isis::SqlQuery::_throwIfFailed
bool _throwIfFailed
User can select action on query results.
Definition: SqlQuery.h:186
Isis::SqlQuery::getRecord
SqlRecord getRecord() const
Returns a SqlRecord for the current query row.
Definition: SqlQuery.cpp:254
Isis::SqlQuery::nRows
int nRows() const
Returns the count of rows resulting from the query.
Definition: SqlQuery.cpp:237
Isis::SqlQuery::SqlQuery
SqlQuery()
Default constructor.
Definition: SqlQuery.cpp:30
Isis::SqlQuery
Construct and execute a query on a database and manage result.
Definition: SqlQuery.h:138
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::SqlQuery::isThrowing
bool isThrowing() const
Report error status when executing queries.
Definition: SqlQuery.h:153