33 explicit Filter(
const char* w) : fields(
"*"), where(w) {}
34 explicit Filter(
const std::string& w) : fields(
"*"), where(w) {}
36 void AppendField(
const std::string& strField);
37 void AppendJoin(
const std::string& strJoin);
38 void AppendWhere(
const std::string& strWhere,
bool combineWithAnd =
true);
39 void AppendOrder(
const std::string& strOrder);
40 void AppendGroup(
const std::string& strGroup);
53 : fetch(fetch), output(output), recno(recno)
67 void SetField(
int fieldNo,
const std::string& strField,
bool bOutput =
false);
68 void AdjustRecordNumbers(
int offset);
69 bool GetFetch(
int fieldno);
70 void SetFetch(
int fieldno,
bool bFetch =
true);
71 bool GetOutput(
int fieldno);
72 int GetRecNo(
int fieldno);
73 const std::string GetFields();
74 bool HasFilterFields();
77 std::vector<DatasetFieldInfo> m_fields;
83 explicit ExistsSubQuery(
const std::string& table) : tablename(table) {}
84 ExistsSubQuery(
const std::string& table,
const std::string& parameter)
85 : tablename(table), param(parameter)
88 void AppendJoin(
const std::string& strJoin);
89 void AppendWhere(
const std::string& strWhere,
bool combineWithAnd =
true);
90 bool BuildSQL(std::string& strSQL);
92 std::string tablename;
101 virtual void Close();
102 bool Compress(
bool bForce =
true);
107 void BeginTransaction();
108 virtual bool CommitTransaction();
109 void RollbackTransaction();
110 void CopyDB(
const std::string& latestDb);
111 void DropAnalytics();
113 std::string PrepareSQL(std::string strStmt, ...)
const;
124 std::string GetSingleValue(
const std::string& strTable,
125 const std::string& strColumn,
126 const std::string& strWhereClause = std::string(),
127 const std::string& strOrderBy = std::string());
128 std::string GetSingleValue(
const std::string& query);
135 std::string GetSingleValue(
const std::string& query, std::unique_ptr<dbiplus::Dataset>& ds);
146 int GetSingleValueInt(
const std::string& strTable,
147 const std::string& strColumn,
148 const std::string& strWhereClause = std::string(),
149 const std::string& strOrderBy = std::string());
150 int GetSingleValueInt(
const std::string& query);
157 int GetSingleValueInt(
const std::string& query, std::unique_ptr<dbiplus::Dataset>& ds);
165 bool DeleteValues(
const std::string& strTable,
const Filter& filter =
Filter());
175 bool ExecuteQuery(
const std::string& strQuery);
183 bool ResultQuery(
const std::string& strQuery)
const;
194 bool BeginMultipleExecute();
203 bool CommitMultipleExecute();
210 bool QueueInsertQuery(
const std::string& strQuery);
216 bool CommitInsertQueries();
222 size_t GetInsertQueriesCount();
229 bool QueueDeleteQuery(
const std::string& strQuery);
235 bool CommitDeleteQueries();
241 size_t GetDeleteQueriesCount();
244 virtual bool BuildSQL(
const std::string& strBaseDir,
245 const std::string& strQuery,
249 virtual bool BuildSQL(
const std::string& strBaseDir,
250 const std::string& strQuery,
256 bool Connect(
const std::string& dbName,
const DatabaseSettings& db,
bool create);
261 void Split(
const std::string& strFileNameAndPath, std::string& strPath, std::string& strFileName);
268 bool CreateDatabase();
273 virtual void CreateTables() = 0;
278 virtual void CreateAnalytics() = 0;
284 virtual void UpdateTables(
int version) {}
288 virtual int GetMinSchemaVersion()
const {
return 0; }
292 virtual int GetSchemaVersion()
const = 0;
293 virtual const char* GetBaseDBName()
const = 0;
297 bool BuildSQL(
const std::string& strQuery,
const Filter& filter, std::string& strSQL);
301 std::unique_ptr<dbiplus::Database> m_pDB;
302 std::unique_ptr<dbiplus::Dataset> m_pDS;
303 std::unique_ptr<dbiplus::Dataset> m_pDS2;
311 void UpdateVersionNumber();
313 bool m_bMultiInsert =
315 bool m_bMultiDelete =
317 unsigned int m_openCount;
319 bool m_multipleExecute;
320 std::vector<std::string> m_multipleQueries;
Definition: Database.h:80
Definition: Database.h:29
Definition: Database.h:11
Database manager class for handling database updating.
Definition: DatabaseManager.h:28
Definition: AdvancedSettings.h:38
Definition: Database.h:50
Definition: Database.h:63
Definition: Database.h:26
Definition: ProfileManager.h:25
Definition: SmartPlayList.cpp:137
bool m_sqlite
whether we use sqlite (defaults to true)
Definition: Database.h:299
Definition: SortUtils.h:176