24 virtual ~
IDbExec(
void) noexcept = 0;
31 static IDbExec * create(
const string & i_sqlProvider,
const string & i_connectionStr);
44 virtual int selectToInt(
const string & i_sql,
int i_default) = 0;
54 virtual long long selectToLong(
const string & i_sql,
long long i_default) = 0;
139 const string & i_sql,
int i_column,
const type_info & i_type,
size_t i_size,
void * io_valueArr
149 virtual size_t update(
const string & i_sql) = 0;
185 virtual void createStatement(
const string & i_sql,
int i_paramCount,
const type_info ** i_typeArr) = 0;
226 static list<string> parseListOfProviderNames(
const string & i_sqlProviderNames);
229 static bool isValidProviderName(
const char * i_sqlProvider);
232 static bool isSqlKeyword(
const char * i_keyword,
size_t i_length = 0);
237 static const int maxDbTableNameSize = 63;
240 static const string makeDbNamePrefix(
int i_id,
const string & i_src);
243 static const string makeDbNameSuffix(
int i_id,
const string & i_src,
const string i_digest);
246 static string bigIntTypeName(
const string & i_sqlProvider);
249 static string floatTypeName(
const string & i_sqlProvider);
252 static string textTypeName(
const string & i_sqlProvider,
int i_size);
255 static string valueDbType(
const string & i_sqlProvider,
const string & i_typeName,
int i_typeId);
258 static string makeSqlBeginTransaction(
const string & i_sqlProvider);
261 static string makeSqlCommitTransaction(
const string & i_sqlProvider);
277 static string makeSqlCreateTableIfNotExist(
278 const string & i_sqlProvider,
const string & i_tableName,
const string & i_tableBodySql
297 static string makeSqlCreateViewReplace(
298 const string & i_sqlProvider,
const string & i_viewName,
const string & i_viewBodySql
338 static const bool isCrc32Name =
true;
339 static const int dbSuffixSize = isCrc32Name ? 8 : 32;
340 static const int dbPrefixSize = maxDbTableNameSize - (2 + dbSuffixSize);
database connection wrapper to execute sql commands.
Definition: dbExec.h:21
virtual void releaseStatement(void) noexcept=0
release statement resources.
virtual vector< string > selectRowStr(const string &i_sql)=0
select string vector of first row or empty vector if no rows, empty "" string used for NULLs.
virtual bool selectToBool(const string &i_sql)=0
select boolean value of first (row,column) or false if no rows or value IS NULL.
virtual void createStatement(const string &i_sql, int i_paramCount, const type_info **i_typeArr)=0
create new statement with specified parameters.
virtual void commit(void)=0
commit transaction, does nothing if no active transaction.
virtual double selectToDouble(const string &i_sql, double i_default)=0
select double value of first (row,column) or default if no rows or value IS NULL.
virtual bool isTransaction(void)=0
return true in transaction scope.
virtual string selectToStr(const string &i_sql)=0
select string value of first (row,column) or empty "" string if no rows or value IS NULL.
virtual size_t selectColumn(const string &i_sql, int i_column, const type_info &i_type, size_t i_size, void *io_valueArr)=0
select column into io_valueArray[i_size] buffer and return row count.
virtual long long selectToLong(const string &i_sql, long long i_default)=0
select long value of first (row,column) or default if no rows or value IS NULL.
virtual void selectToRowProcessor(const string &i_sql, const IRowAdapter &i_adapter, IRowProcessor &i_processor)=0
select and process rows: each row created by row adapter and passed to processor.
virtual int selectToInt(const string &i_sql, int i_default)=0
select integer value of first (row,column) or default if no rows or value IS NULL.
virtual IRowBaseList selectRowList(const string &i_sql, const IRowAdapter &i_adapter)=0
select list of rows, each row created and field values set by row adapter.
virtual string provider(void) const =0
return sql provider name, e.g.
virtual void executeStatement(int i_paramCount, const DbValue *i_valueArr)=0
execute statement with parameters.
virtual IRowBaseVec selectRowVector(const string &i_sql, const IRowAdapter &i_adapter)=0
select vector of rows, each row created and field values set by row adapter.
virtual void rollback(void)=0
rollback transaction.
virtual size_t update(const string &i_sql)=0
execute sql statement (update, insert, delete, create, etc).
virtual unique_lock< recursive_mutex > beginTransactionThreaded(void)=0
begin transaction in multi-threaded environment.
virtual void runSqlScript(const string &i_sqlScript)=0
parse and execute list of sql statements.
virtual void beginTransaction(void)=0
begin transaction.
row factory and setter interface to select row from database
Definition: dbCommon.h:45
public interafce for row processing during select, ie: select and append to row list
Definition: dbCommon.h:181
OpenM++ data library: public interface for db common structures.
openM++ namespace
Definition: log.h:32
std::list< IRowBaseUptr > IRowBaseList
db rows: list of unique pointers to db row
Definition: omHelper.h:244
std::vector< IRowBaseUptr > IRowBaseVec
db rows: vector of unique pointers to db row
Definition: omHelper.h:241
OpenM++: public interface for log and trace support.
union to pass value to database methods
Definition: dbCommon.h:73