1 #ifndef DBAPI_DRIVER___PUBLIC__HPP
2 #define DBAPI_DRIVER___PUBLIC__HPP
40 #if defined(_MSC_VER) && _MSC_VER < 1920
42 #pragma warning(disable : 4996)
100 unsigned int batch_size);
128 bool discard_results =
true);
154 void SetDatabaseName(
const string& name);
189 virtual const string&
UserName()
const;
196 virtual const string&
Password()
const;
221 unsigned int GetReuseCount()
const;
228 virtual const string&
PoolName()
const;
288 virtual bool Abort();
299 virtual bool Close(
void);
317 virtual void SetCancelTimeout(
size_t nof_secs);
331 size_t GetCancelTimeout(
void)
const;
336 virtual string GetDriverName(
void)
const;
342 return m_HasTransaction;
350 #ifndef NCBI_UNDEPRECATE__DBAPI_OLD_CONNECTION
358 #ifndef NCBI_UNDEPRECATE__DBAPI_OLD_CONNECTION
363 return RPC(rpc_name);
366 #ifndef NCBI_UNDEPRECATE__DBAPI_OLD_CONNECTION
374 #ifndef NCBI_UNDEPRECATE__DBAPI_OLD_CONNECTION
380 unsigned int batch_size)
385 void FinishOpening(
void);
403 bool x_IsAlive(
void);
423 virtual const CDBParams& GetDefineParams(
void)
const;
431 virtual unsigned int NofItems()
const;
441 virtual const char* ItemName(
unsigned int item_num)
const;
451 virtual size_t ItemMaxSize(
unsigned int item_num)
const;
461 virtual EDB_Type ItemDataType(
unsigned int item_num)
const;
469 virtual bool Fetch();
477 virtual int CurrentItemNo()
const;
484 virtual int GetColumnNum(
void)
const;
527 virtual size_t ReadItem(
void*
buffer,
size_t buffer_size,
554 virtual bool SkipItem();
599 #ifndef NCBI_UNDEPRECATE__DBAPI_OLD_LANGCMD
602 virtual bool More(
const string& query_text);
606 virtual CDBParams& GetDefineParams(
void);
629 virtual bool Cancel();
636 virtual bool HasMoreResults()
const;
639 virtual bool HasFailed()
const;
644 virtual int RowCount()
const;
649 virtual void DumpResults();
681 virtual CDBParams& GetDefineParams(
void);
687 bool out_param =
false
690 GetBindParams().
Bind(name,
value, out_param);
698 bool out_param =
false
701 GetBindParams().
Set(name,
value, out_param);
712 virtual bool Cancel();
723 virtual bool HasMoreResults()
const;
726 virtual bool HasFailed()
const;
731 virtual int RowCount()
const;
736 virtual void DumpResults();
744 virtual const string& GetProcName(
void)
const;
791 void AddHint(EBCP_Hints hint,
unsigned int value = 0);
804 virtual bool SendRow();
808 virtual bool CompleteBatch();
811 virtual bool Cancel();
815 virtual bool CompleteBCP();
847 virtual CDBParams& GetDefineParams(
void);
863 virtual bool Update(
const string&
table_name,
const string& upd_query);
895 bool discard_results =
true);
899 virtual bool Delete(
const string&
table_name);
904 virtual int RowCount()
const;
908 virtual bool Close();
940 virtual size_t SendChunk(
const void*
data,
size_t size);
941 virtual bool Cancel(
void);
945 virtual bool HasMoreResults()
const;
950 virtual void DumpResults();
983 const string& column_name,
984 const string& search_conditions,
985 ETDescriptorType column_type =
eUnknown,
989 virtual int DescriptorType(
void)
const;
1000 return m_ColumnType;
1004 m_ColumnType =
type;
1008 return m_HasLegacyType;
1011 m_HasLegacyType =
state;
1042 void ReleaseConn(
void);
1118 #define DBAPI_TRANSACTION(connection) \
1119 for(ncbi::CAutoTrans auto_trans(ncbi::DBAPI_MakeTrans(connection)); \
1120 auto_trans.Continue(); \
1121 auto_trans.Finish())
1129 #if defined(_MSC_VER) && _MSC_VER < 1920
1130 #pragma warning(pop)
Helper class to allow safe initialization from higher-layer objects.
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
virtual const string & ServerName(void) const =0
virtual Uint4 Host(void) const =0
virtual Uint2 Port(void) const =0
I_LangCmd:: I_RPCCmd:: I_BCPInCmd:: I_CursorCmd:: I_SendDataCmd::
static const char table_name[]
static const column_t columns[]
ETriState
Enumeration to represent a tristate value.
@ eTriState_Unknown
The value is indeterminate.
@ eNoOwnership
No ownership is assumed.
virtual bool IsAlive(void)=0
Check out if connection is alive.
virtual const string & PoolName(void) const =0
Find out which connection pool this connection belongs to.
virtual CDBParams & Set(const CDBParamVariant ¶m, CDB_Object *value, bool out_param=false)
This method stores copy of data.
virtual CDB_SendDataCmd * SendDataCmd(I_BlobDescriptor &desc, size_t data_size, bool log_it=true, bool discard_results=true)=0
Create send-data command.
virtual CDB_CursorCmd * Cursor(const string &cursor_name, const string &query, unsigned int batch_size)=0
Cursor.
virtual CDB_RPCCmd * RPC(const string &rpc_name)=0
Remote procedure call.
virtual bool SendData(I_BlobDescriptor &desc, CDB_Stream &lob, bool log_it=true)=0
Shortcut to send text and image to the server without using the "Send-data" command (SendDataCmd)
virtual CDB_BCPInCmd * BCPIn(const string &table_name)=0
"Bulk copy in" command
virtual const string & DatabaseName(void) const =0
Get the database name.
virtual bool Close(void)=0
Close an open connection.
virtual size_t GetTimeout(void) const =0
Get connection timeout.
virtual CDB_LangCmd * LangCmd(const string &lang_query)=0
These methods: LangCmd(), RPC(), BCPIn(), Cursor() and SendDataCmd() create and return a "command" ob...
virtual I_DriverContext * Context(void) const =0
Get pointer to the driver context.
virtual bool Refresh(void)=0
Reset the connection to the "ready" state (cancel all active commands)
virtual I_DriverContext::TConnectionMode ConnectMode(void) const =0
Get the bitmask for the connection mode (BCP, secure login, ...)
virtual string GetVersionString(void) const
Driver version, supplied here rather than by the context for ODBC's sake.
virtual void SetTimeout(size_t nof_secs)=0
Set connection timeout.
virtual CDBParams & Bind(const CDBParamVariant ¶m, CDB_Object *value, bool out_param=false)
This method stores pointer to data.
virtual I_ConnectionExtra & GetExtraFeatures(void)=0
Get interface for extra features that could be implemented in the driver.
virtual void PopMsgHandler(CDB_UserHandler *h)=0
Remove the message handler (and all above it) from the stack.
virtual const string & Password(void) const =0
Get the password.
virtual CDB_ResultProcessor * SetResultProcessor(CDB_ResultProcessor *rp)=0
Set new result-processor.
virtual void PushMsgHandler(CDB_UserHandler *h, EOwnership ownership=eNoOwnership)=0
Put the message handler into message handler stack.
virtual bool IsReusable(void) const =0
Check if this connection is a reusable one.
virtual const string & UserName(void) const =0
Get the user user.
impl::CResult * GetIResultPtr(void) const
CDB_LangCmd * LangCmd(const string &lang_query, unsigned int)
CAutoTrans(const CSubject &subject)
bool SetParam(const string &name, CDB_Object *value, bool out_param=false)
const string & SearchConditions() const
void SetHasLegacyType(ETriState state)
bool SetParam(const string &name, CDB_Object *value)
CAutoTrans & operator=(const CAutoTrans &)
void SetTableName(const string &name)
ETriState m_HasLegacyType
impl::CConnection * m_ConnImpl
NCBI_DECLARE_INTERFACE_VERSION(I_DriverContext, "xdbapi", 14, 0, 0)
impl::CResult * m_ResImpl
CDB_CursorCmd * Cursor(const string &cursor_name, const string &query, unsigned int, unsigned int batch_size)
impl::CResult & GetIResult(void) const
impl::CSendDataCmd * m_CmdImpl
impl::CBaseCmd * m_CmdImpl
CAutoTrans(const CAutoTrans &)
bool BindParam(const string &name, CDB_Object *value)
ETDescriptorType m_ColumnType
CDB_ResultProcessor(const CDB_ResultProcessor &)
CDB_CursorCmd * Cursor(const string &cursor_name, const string &query)
string m_SearchConditions
CSubject(CDB_Connection &connection)
CDB_Result(const CDB_Result &)
CDB_ResultProcessor * m_Next
CDB_ResultProcessor * m_Prev
impl::CBaseCmd * m_CmdImpl
CDB_BlobDescriptor CDB_ITDescriptor
impl::CBaseCmd * m_CmdImpl
CAutoTrans::CSubject DBAPI_MakeTrans(CDB_Connection &connection)
CDB_RPCCmd(const CDB_RPCCmd &)
CDB_BCPInCmd * BCPIn(const string &table_name, unsigned int)
bool Continue(void) const
CDB_LangCmd(const CDB_LangCmd &)
ETriState GetHasLegacyType(void) const
CDB_BCPInCmd(const CDB_BCPInCmd &)
CDB_Connection(const CDB_Connection &)
ETDescriptorType GetColumnType(void) const
void SetColumnName(const string &name)
CDB_Connection & m_Connection
EBCP_Hints
Type of hint that can be set.
CDB_RPCCmd * RPC(const string &rpc_name, unsigned int)
void SetSearchConditions(const string &cond)
CDB_SendDataCmd(const CDB_CursorCmd &)
impl::CBaseCmd * m_CmdImpl
void BeginTransaction(void)
bool BindParam(const string &name, CDB_Object *value, bool out_param=false)
const string & ColumnName() const
CDB_CursorCmd(const CDB_CursorCmd &)
bool HasTransaction(void) const
void SetColumnType(ETDescriptorType type)
bool BindParam(const string &name, CDB_Object *value)
const string & TableName() const
NCBI_XNCBI_EXPORT void Abort(void)
Smart abort function.
uint32_t Uint4
4-byte (32-bit) unsigned integer
uint16_t Uint2
2-byte (16-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
enum ENcbiOwnership EOwnership
Ownership relations between objects.
#define NCBI_DBAPIDRIVER_EXPORT
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
Plugin manager (using class factory paradigm).