52 #define NCBI_USE_ERRCODE_X Dbapi_ObjImpls
63 : m_ds(ds), m_connection(0), m_connCounter(1), m_connUsed(
false),
64 m_modeMask(0), m_forceSingle(
false), m_multiExH(0),
65 m_msgToEx(
false), m_ownership(ownership)
67 _TRACE(
"Default connection " << (
void *)
this <<
" created...");
72 : m_ds(ds), m_connection(
conn), m_connCounter(-1), m_connUsed(
false),
73 m_modeMask(0), m_forceSingle(
false), m_multiExH(0),
76 _TRACE(
"Auxiliary connection " << (
void *)
this <<
" created...");
114 const string& password,
115 const string& server,
147 const string& password,
148 const string& server,
170 _TRACE(
"Auxiliary connection " << (
void*)
this <<
" is being deleted...");
172 _TRACE(
"Default connection " << (
void*)
this <<
" is being deleted...");
224 def_params.
SetParam(
"do_not_dispatch",
"true");
225 def_params.
SetParam(
"do_not_read_conf",
"true");
242 <<
" cloned, new CDB_Connection: " << (
void*)tmp_conn);
277 conn->x_SendXactAbort();
297 <<
", no aux connections necessary, using default...");
339 "CConnection::GetStatement(): Connection taken, cannot use this method"
343 stmt->AddListener(
this);
352 "CConnection::GetCallableStatement(): Connection taken, cannot use this method"
419 stmt->AddListener(
this);
522 _TRACE(
"MsqToEx(): connection " << (
void*)
this
523 <<
": message handler " << (
void*)
GetHandler()
529 _TRACE(
"MsqToEx(): connection " << (
void*)
this
530 <<
": message handler " << (
void*)
GetHandler()
592 static TDbapi_SetXactAbort sx_set_xact_abort;
594 if (sx_set_xact_abort.Get()) {
597 bool is_ms_sql =
false;
602 while (
cmd->HasMoreResults()) {
603 unique_ptr<CDB_Result>
result;
631 unique_ptr<CDB_LangCmd> xact_cmd(
638 xact_cmd->DumpResults();
void RemoveListener(CActiveObject *obj)
void SetIdent(const string &name)
void AddListener(CActiveObject *obj)
void Notify(const CDbapiEvent &e)
CRef< CToMultiExHandler > m_multiExH
virtual string GetErrorInfo()
Returns all error messages as a single string.
virtual void Action(const CDbapiEvent &e)
virtual CDB_MultiEx * GetErrorAsEx()
Returns all error messages as a CDB_MultiEx object.
virtual ICursor * GetCursor(const string &name, const string &sql, int batchSize)
Get cursor object.
CDB_Connection * m_connection
virtual ICallableStatement * PrepareCall(const string &proc)
Get callable statement object for stored procedures.
virtual void SetMode(EConnMode mode)
Set connection mode.
virtual void SetDatabase(const string &name)
Set current database.
unique_ptr< CVersionInfo > m_versionInfo
virtual ICursor * CreateCursor(const string &name, const string &sql, int batchSize)
Get cursor object.
virtual void Abort()
Abort connection.
virtual void MsgToEx(bool v)
If enabled, redirects all error messages to CDB_MultiEx object (see below).
virtual ICallableStatement * GetCallableStatement(const string &proc)
Get callable statement object for stored procedures.
virtual IConnection * CloneConnection(EOwnership ownership)
Clone existing connection.
virtual IDataSource * GetDataSource()
Get parent datasource object.
virtual unsigned int GetModeMask()
Get mode mask.
void SetDbName(const string &name, CDB_Connection *conn=0)
virtual IBulkInsert * CreateBulkInsert(const string &table_name)
Create bulk insert object.
virtual void Close()
Close connecti.
virtual IStatement * GetStatement()
Get statement object for regular SQL queries.
CDB_Connection * CloneCDB_Conn()
CConnection * GetAuxConn()
virtual void SetTimeout(size_t nof_secs)
Set connection timeout.
virtual const CVersionInfo & GetVersionInfo() const
virtual void ResetMode(EConnMode mode)
Reset connection mode.
virtual void ForceSingle(bool enable)
Force single connection mode, default false.
virtual IBulkInsert * GetBulkInsert(const string &table_name)
Create bulk insert object.
virtual IStatement * CreateStatement()
Get statement object for regular SQL queries.
CConnection(CDataSource *ds, EOwnership ownership)
virtual void ConnectValidated(IConnValidator &validator, const string &user, const string &password, const string &server, const string &database=kEmptyStr)
Connect to a database using connect validator.
virtual string GetDatabase()
Get current database.
virtual CDB_Connection * GetCDB_Connection()
Returns the internal driver connection object.
virtual void SetCancelTimeout(size_t nof_secs)
Set timeout for command cancellation and connection closing.
virtual bool IsAlive()
Check if the connection is alive.
virtual void Connect(const string &user, const string &password, const string &server, const string &database=kEmptyStr)
Connect to a database.
void x_SendXactAbort(void)
class CToMultiExHandler * GetHandler()
Class has deliberately obscure name to not mix it with CBulkInsert in SDBAPI and to avoid direct usag...
void SetConnValidator(const CRef< IConnValidator > &validator)
void SetDatabaseName(const string &name)
void SetParam(const string &key, const string &value)
virtual I_DriverContext * GetDriverContext()
Returns the pointer to the general driver interface.
CActiveObject * GetSource() const
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
CDB_MultiEx * GetMultiEx()
NCBI_PARAM_DECL(bool, dbapi, set_xact_abort)
NCBI_PARAM_DEF_EX(bool, dbapi, set_xact_abort, true, eParam_NoThread, NULL)
typedef NCBI_PARAM_TYPE(dbapi, set_xact_abort) TDbapi_SetXactAbort
#define CHECK_NCBI_DBAPI(failed, message)
std::ofstream out("events_result.xml")
main entry point for tests
static CS_CONNECTION * conn
static const char table_name[]
@ eNoOwnership
No ownership is assumed.
EConnMode
Which connection mode.
int GetDBErrCode(void) const
virtual bool HandleIt(CDB_Exception *ex)
Handle the exceptions resulting from a native API call, one-by-one.
virtual unsigned int GetTimeout(void) const =0
Get connection timeout.
virtual CDB_Connection * MakeConnection(const CDBConnParams ¶ms)=0
Create connection object using Load Balancer / connection factory.
virtual void SetCancelTimeout(size_t nof_secs)
Set timeout for command cancellation and connection closing.
virtual string GetVersionString(void) const
Driver version, supplied here rather than by the context for ODBC's sake.
virtual bool IsAlive()
Check out if connection is alive.
virtual bool Abort()
Abort the connection.
void SetDatabaseName(const string &name)
Set database name.
virtual CDB_LangCmd * LangCmd(const string &lang_query)
Make language command.
virtual void PushMsgHandler(CDB_UserHandler *h, EOwnership ownership=eNoOwnership)
Put the message handler into message handler stack.
virtual const string & DatabaseName(void) const
Get the database name.
virtual void PopMsgHandler(CDB_UserHandler *h)
Remove the message handler (and all above it) from the stack.
virtual void SetTimeout(size_t nof_secs)
Set connection timeout.
#define NCBI_CATCH_ALL_X(err_subcode, message)
TObjectType * GetPointerOrNull(void) THROWS_NONE
Get pointer value.
bool Empty(void) const THROWS_NONE
Check if CRef is empty – not pointing to any object, which means having a null value.
@ eParam_NoThread
Do not use per-thread values.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)
Find the pattern in the string.
@ eNocase
Case insensitive compare.
enum ENcbiOwnership EOwnership
Ownership relations between objects.
void ParseVersionString(const string &vstr, string *program_name, CVersionInfo *ver)
Parse string, extract version info and program name (case insensitive)
Definition of all error codes used in dbapi libraries (dbapi_driver.lib and others).
use only n Cassandra database for the lookups</td > n</tr > n< tr > n< td > yes</td > n< td > do not use tables BIOSEQ_INFO and BLOB_PROP in the Cassandra database
constexpr bool empty(list< Ts... >) noexcept
const GenericPointer< typename T::ValueType > T2 value