📄 interfaces.hpp
字号:
bool log_it = true); virtual CDB_SendDataCmd* SendDataCmd(unsigned int item_num, size_t size, bool log_it = true); virtual bool Delete(const string& table_name); virtual int RowCount() const; virtual bool Close(); virtual void Release(); virtual ~CTL_CursorCmd();private: bool x_AssignParams(bool just_declare = false); I_ITDescriptor* x_GetITDescriptor(unsigned int item_num); CTL_Connection* m_Connect; CS_COMMAND* m_Cmd; string m_Name; string m_Query; CDB_Params m_Params; unsigned int m_FetchSize; bool m_IsOpen; bool m_HasFailed; bool m_Used; CTL_CursorResult* m_Res; int m_RowCount;};///////////////////////////////////////////////////////////////////////////////// CTL_BCPInCmd:://class NCBI_DBAPIDRIVER_CTLIB_EXPORT CTL_BCPInCmd : public I_BCPInCmd{ friend class CTL_Connection;protected: CTL_BCPInCmd(CTL_Connection* con, CS_BLKDESC* cmd, const string& table_name, unsigned int nof_columns); virtual bool Bind(unsigned int column_num, CDB_Object* param_ptr); virtual bool SendRow(); virtual bool CompleteBatch(); virtual bool Cancel(); virtual bool CompleteBCP(); virtual void Release(); virtual ~CTL_BCPInCmd();private: bool x_AssignParams(); CTL_Connection* m_Connect; CS_BLKDESC* m_Cmd; string m_Query; CDB_Params m_Params; bool m_WasSent; bool m_HasFailed; struct SBcpBind { CS_INT datalen; CS_SMALLINT indicator; char buffer[sizeof(CS_NUMERIC)]; }; SBcpBind* m_Bind;};///////////////////////////////////////////////////////////////////////////////// CTL_SendDataCmd:://class NCBI_DBAPIDRIVER_CTLIB_EXPORT CTL_SendDataCmd : public I_SendDataCmd{ friend class CTL_Connection;protected: CTL_SendDataCmd(CTL_Connection* con, CS_COMMAND* cmd, size_t nof_bytes); virtual size_t SendChunk(const void* chunk_ptr, size_t nof_bytes); virtual void Release(); virtual ~CTL_SendDataCmd();private: CTL_Connection* m_Connect; CS_COMMAND* m_Cmd; size_t m_Bytes2go;};///////////////////////////////////////////////////////////////////////////////// CTL_RowResult:://class NCBI_DBAPIDRIVER_CTLIB_EXPORT CTL_RowResult : public I_Result{ friend class CTL_LangCmd; friend class CTL_RPCCmd; friend class CTL_CursorCmd; friend class CTL_Connection; friend class CTL_SendDataCmd;protected: CTL_RowResult(CS_COMMAND* cmd); virtual EDB_ResType ResultType() const; virtual unsigned int NofItems() const; virtual const char* ItemName (unsigned int item_num) const; virtual size_t ItemMaxSize (unsigned int item_num) const; virtual EDB_Type ItemDataType(unsigned int item_num) const; virtual bool Fetch(); virtual int CurrentItemNo() const; virtual CDB_Object* GetItem(CDB_Object* item_buf = 0); virtual size_t ReadItem(void* buffer, size_t buffer_size, bool* is_null = 0); virtual I_ITDescriptor* GetImageOrTextDescriptor(); virtual bool SkipItem(); CS_RETCODE my_ct_get_data(CS_COMMAND* cmd, CS_INT item, CS_VOID* buffer, CS_INT buflen, CS_INT *outlen); CDB_Object* s_GetItem(CS_COMMAND* cmd, CS_INT item_no, CS_DATAFMT& fmt, CDB_Object* item_buf); virtual ~CTL_RowResult(); // data CS_COMMAND* m_Cmd; int m_CurrItem; bool m_EOR; unsigned int m_NofCols; unsigned int m_CmdNum; CS_DATAFMT* m_ColFmt; int m_BindedCols; CS_VOID** m_BindItem; CS_INT* m_Copied; CS_SMALLINT* m_Indicator; unsigned char m_BindBuff[2048];};///////////////////////////////////////////////////////////////////////////////// CTL_ParamResult::// CTL_ComputeResult::// CTL_StatusResult::// CTL_CursorResult:://class NCBI_DBAPIDRIVER_CTLIB_EXPORT CTL_ParamResult : public CTL_RowResult{ friend class CTL_LangCmd; friend class CTL_RPCCmd; friend class CTL_Connection; friend class CTL_SendDataCmd; friend class CTL_CursorCmd;protected: CTL_ParamResult(CS_COMMAND* pCmd) : CTL_RowResult(pCmd) {} virtual EDB_ResType ResultType() const;};class NCBI_DBAPIDRIVER_CTLIB_EXPORT CTL_ComputeResult : public CTL_RowResult{ friend class CTL_LangCmd; friend class CTL_RPCCmd; friend class CTL_Connection; friend class CTL_SendDataCmd; friend class CTL_CursorCmd;protected: CTL_ComputeResult(CS_COMMAND* pCmd) : CTL_RowResult(pCmd) {} virtual EDB_ResType ResultType() const;};class NCBI_DBAPIDRIVER_CTLIB_EXPORT CTL_StatusResult : public CTL_RowResult{ friend class CTL_LangCmd; friend class CTL_RPCCmd; friend class CTL_Connection; friend class CTL_SendDataCmd; friend class CTL_CursorCmd;protected: CTL_StatusResult(CS_COMMAND* pCmd) : CTL_RowResult(pCmd) {} virtual EDB_ResType ResultType() const;};class NCBI_DBAPIDRIVER_CTLIB_EXPORT CTL_CursorResult : public CTL_RowResult{ friend class CTL_CursorCmd;protected: CTL_CursorResult(CS_COMMAND* pCmd) : CTL_RowResult(pCmd) {} virtual EDB_ResType ResultType() const; virtual bool SkipItem(); virtual ~CTL_CursorResult();};///////////////////////////////////////////////////////////////////////////////// CTL_ITDescriptor:://#define CTL_ITDESCRIPTOR_TYPE_MAGNUM 0xc00class NCBI_DBAPIDRIVER_CTLIB_EXPORT CTL_ITDescriptor : public I_ITDescriptor{ friend class CTL_RowResult; friend class CTL_Connection; friend class CTL_CursorCmd;public: virtual int DescriptorType() const; virtual ~CTL_ITDescriptor();protected: CTL_ITDescriptor(); CS_IODESC m_Desc;};///////////////////////////////////////////////////////////////////////////////// Miscellaneous//extern void g_CTLIB_GetRowCount(CS_COMMAND* cmd, int* cnt);extern bool g_CTLIB_AssignCmdParam(CS_COMMAND* cmd, CDB_Object& param, const string& param_name, CS_DATAFMT& param_fmt, CS_SMALLINT indicator, bool declare_only = false );END_NCBI_SCOPE#endif /* DBAPI_DRIVER_CTLIB___INTERFACES__HPP *//* * =========================================================================== * $Log: interfaces.hpp,v $ * Revision 1000.0 2003/10/29 20:19:22 gouriano * PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.16 * * Revision 1.16 2003/07/17 20:41:48 soussov * connections pool improvements * * Revision 1.15 2003/06/05 15:55:26 soussov * adds DumpResults method for LangCmd and RPC, SetResultProcessor method for Connection interface * * Revision 1.14 2003/04/21 20:17:06 soussov * Buffering fetched result to avoid ct_get_data performance issue * * Revision 1.13 2003/04/01 20:26:24 vakatov * Temporarily rollback to R1.11 -- until more backward-incompatible * changes (in CException) are ready to commit (to avoid breaking the * compatibility twice). * * Revision 1.11 2003/02/13 16:06:36 ivanov * Added export specifier NCBI_DBAPIDRIVER_CTLIB_EXPORT for class definitions * * Revision 1.10 2002/03/28 00:37:01 vakatov * CTL_CursorCmd:: use CTL_CursorResult rather than I_Result (fix access) * * Revision 1.9 2002/03/26 15:26:02 soussov * new image/text operations added * * Revision 1.8 2001/11/06 17:58:56 lavr * Get rid of inline methods - all moved into source files * * Revision 1.7 2001/10/22 15:14:50 lavr * Beautifications... * * Revision 1.6 2001/09/27 23:01:06 vakatov * CTL_***Result:: virtual methods' implementation moved away from the header * * Revision 1.5 2001/09/27 20:08:30 vakatov * Added "DB_" (or "I_") prefix where it was missing * * Revision 1.4 2001/09/27 15:41:28 soussov * CTL_Connection::Release() added * * Revision 1.3 2001/09/26 23:23:28 vakatov * Moved the err.message handlers' stack functionality (generic storage * and methods) to the "abstract interface" level. * * Revision 1.2 2001/09/24 20:52:19 vakatov * Fixed args like "string& s = 0" to "string& s = kEmptyStr" * * Revision 1.1 2001/09/21 23:39:53 vakatov * ----- Initial (draft) revision. ----- * This is a major revamp (by Denis Vakatov, with help from Vladimir Soussov) * of the DBAPI "driver" libs originally written by Vladimir Soussov. * The revamp involved massive code shuffling and grooming, numerous local * API redesigns, adding comments and incorporating DBAPI to the C++ Toolkit. * * =========================================================================== */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -