2021-12-05 17:54:36 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
// C++
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
// SQLite
|
|
|
|
#include "CppSQLite3.h"
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Optimization settings
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <sstream>
|
|
|
|
#include <iostream>
|
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
// Enable this to cache all entries in each table for fast access, comes with more memory cost
|
|
|
|
//#define CDCLIENT_CACHE_ALL
|
2021-12-05 17:54:36 +00:00
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
// Enable this to skip some unused columns in some tables
|
2021-12-05 17:54:36 +00:00
|
|
|
#define UNUSED(v)
|
|
|
|
|
|
|
|
/*!
|
|
|
|
\file CDClientDatabase.hpp
|
|
|
|
\brief An interface between the CDClient.sqlite file and the server
|
|
|
|
*/
|
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
//! The CDClient Database namespace
|
2021-12-05 17:54:36 +00:00
|
|
|
namespace CDClientDatabase {
|
2022-07-28 13:39:57 +00:00
|
|
|
|
|
|
|
//! Opens a connection with the CDClient
|
|
|
|
/*!
|
|
|
|
\param filename The filename
|
|
|
|
*/
|
|
|
|
void Connect(const std::string& filename);
|
|
|
|
|
|
|
|
//! Queries the CDClient
|
|
|
|
/*!
|
|
|
|
\param query The query
|
|
|
|
\return The results of the query
|
|
|
|
*/
|
|
|
|
CppSQLite3Query ExecuteQuery(const std::string& query);
|
|
|
|
|
2022-10-30 07:38:43 +00:00
|
|
|
//! Updates the CDClient file with Data Manipulation Language (DML) commands.
|
|
|
|
/*!
|
|
|
|
\param query The DML command to run. DML command can be multiple queries in one string but only
|
|
|
|
the last one will return its number of updated rows.
|
|
|
|
\return The number of updated rows.
|
|
|
|
*/
|
|
|
|
int ExecuteDML(const std::string& query);
|
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
//! Queries the CDClient and parses arguments
|
|
|
|
/*!
|
|
|
|
\param query The query with formatted arguments
|
|
|
|
\return prepared SQLite Statement
|
|
|
|
*/
|
|
|
|
CppSQLite3Statement CreatePreppedStmt(const std::string& query);
|
2021-12-05 17:54:36 +00:00
|
|
|
};
|