📄 interfaces.hpp
字号:
virtual bool BindParam(const string& param_name, CDB_Object* param_ptr, bool out_param = false); virtual bool SetParam(const string& param_name, CDB_Object* param_ptr, bool out_param = false); virtual bool Send(); virtual bool WasSent() const; virtual bool Cancel(); virtual bool WasCanceled() const; virtual CDB_Result* Result(); virtual bool HasMoreResults() const; virtual bool HasFailed() const; virtual int RowCount() const; virtual void DumpResults(); virtual void SetRecompile(bool recompile = true); virtual void Release(); virtual ~CODBC_RPCCmd();private: bool x_AssignParams(string& cmd, string& q_exec, string& q_select, CMemPot& bind_guard, SQLINTEGER* indicator); bool xCheck4MoreResults(); CODBC_Connection* m_Connect; SQLHSTMT m_Cmd; string m_Query; CDB_Params m_Params; CODBC_Reporter m_Reporter; bool m_WasSent; bool m_HasFailed; bool m_Recompile; bool m_HasStatus; bool m_hasResults; I_Result* m_Res; int m_RowCount;};///////////////////////////////////////////////////////////////////////////////// CODBC_CursorCmd:://class NCBI_DBAPIDRIVER_ODBC_EXPORT CODBC_CursorCmd : public I_CursorCmd{ friend class CODBC_Connection;protected: CODBC_CursorCmd(CODBC_Connection* conn, SQLHSTMT cmd, const string& cursor_name, const string& query, unsigned int nof_params); virtual bool BindParam(const string& param_name, CDB_Object* param_ptr); virtual CDB_Result* Open(); virtual bool Update(const string& table_name, const string& upd_query); virtual bool UpdateTextImage(unsigned int item_num, CDB_Stream& data, 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 ~CODBC_CursorCmd();private: bool x_AssignParams(bool just_declare = false); CDB_ITDescriptor* x_GetITDescriptor(unsigned int item_num); CODBC_LangCmd m_CursCmd; CODBC_LangCmd* m_LCmd; CODBC_Connection* m_Connect; string m_Name; unsigned int m_FetchSize; bool m_IsOpen; bool m_IsDeclared; bool m_HasFailed; I_Result* m_Res; int m_RowCount;};///////////////////////////////////////////////////////////////////////////////// CODBC_BCPInCmd:://class NCBI_DBAPIDRIVER_ODBC_EXPORT CODBC_BCPInCmd : public I_BCPInCmd{ friend class CODBC_Connection;protected: CODBC_BCPInCmd(CODBC_Connection* con, SQLHDBC 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 ~CODBC_BCPInCmd();private: bool x_AssignParams(void* p); CODBC_Connection* m_Connect; SQLHDBC m_Cmd; string m_Query; CDB_Params m_Params; bool m_WasSent; bool m_HasFailed; bool m_WasBound; bool m_HasTextImage; CODBC_Reporter m_Reporter;};///////////////////////////////////////////////////////////////////////////////// CODBC_SendDataCmd:://class NCBI_DBAPIDRIVER_ODBC_EXPORT CODBC_SendDataCmd : public I_SendDataCmd{ friend class CODBC_Connection;protected: CODBC_SendDataCmd(CODBC_Connection* con, SQLHSTMT cmd, CDB_ITDescriptor& descr, size_t nof_bytes, bool logit); virtual size_t SendChunk(const void* chunk_ptr, size_t nof_bytes); virtual void Release(); virtual ~CODBC_SendDataCmd();private: void xCancel(); CODBC_Connection* m_Connect; SQLHSTMT m_Cmd; CODBC_Reporter m_Reporter; size_t m_Bytes2go;};///////////////////////////////////////////////////////////////////////////////// CODBC_RowResult:://class NCBI_DBAPIDRIVER_ODBC_EXPORT CODBC_RowResult : public I_Result{ friend class CODBC_LangCmd; friend class CODBC_RPCCmd; friend class CODBC_CursorCmd; friend class CODBC_Connection;protected: CODBC_RowResult(SQLSMALLINT nof_cols, SQLHSTMT cmd, CODBC_Reporter& r); 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(); CDB_ITDescriptor* GetImageOrTextDescriptor(int item_no, const string& cond); virtual bool SkipItem(); virtual ~CODBC_RowResult(); int xGetData(SQLSMALLINT target_type, SQLPOINTER buffer, SQLINTEGER buffer_size); CDB_Object* xLoadItem(CDB_Object* item_buf); CDB_Object* xMakeItem(); // data SQLHSTMT m_Cmd; // CODBC_Connection* m_Connect; int m_CurrItem; bool m_EOR; unsigned int m_NofCols; unsigned int m_CmdNum;#define ODBC_COLUMN_NAME_SIZE 80 typedef struct t_SODBC_ColDescr { SQLCHAR ColumnName[ODBC_COLUMN_NAME_SIZE]; SQLUINTEGER ColumnSize; SQLSMALLINT DataType; SQLSMALLINT DecimalDigits; } SODBC_ColDescr; SODBC_ColDescr* m_ColFmt; CODBC_Reporter& m_Reporter;};///////////////////////////////////////////////////////////////////////////////// CODBC_ParamResult::// CODBC_ComputeResult::// CODBC_StatusResult::// CODBC_CursorResult:://class NCBI_DBAPIDRIVER_ODBC_EXPORT CODBC_StatusResult : public CODBC_RowResult{ friend class CODBC_RPCCmd; friend class CODBC_Connection;protected: CODBC_StatusResult(SQLHSTMT cmd, CODBC_Reporter& r) : CODBC_RowResult(1, cmd, r){} virtual EDB_ResType ResultType() const; virtual ~CODBC_StatusResult();};class NCBI_DBAPIDRIVER_ODBC_EXPORT CODBC_ParamResult : public CODBC_RowResult{ friend class CODBC_RPCCmd; friend class CODBC_Connection;protected: CODBC_ParamResult(SQLSMALLINT nof_cols, SQLHSTMT cmd, CODBC_Reporter& r) : CODBC_RowResult(nof_cols, cmd, r){} virtual EDB_ResType ResultType() const; virtual ~CODBC_ParamResult();};class NCBI_DBAPIDRIVER_ODBC_EXPORT CODBC_CursorResult : public I_Result{ friend class CODBC_CursorCmd;protected: CODBC_CursorResult(CODBC_LangCmd* 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_buff = 0); virtual size_t ReadItem(void* buffer, size_t buffer_size, bool* is_null = 0); virtual I_ITDescriptor* GetImageOrTextDescriptor(); virtual bool SkipItem(); virtual ~CODBC_CursorResult(); // data CODBC_LangCmd* m_Cmd; CDB_Result* m_Res; bool m_EOR;};END_NCBI_SCOPE#endif /* DBAPI_DRIVER_ODBC___INTERFACES__HPP *//* * =========================================================================== * $Log: interfaces.hpp,v $ * Revision 1000.1 2004/04/21 14:47:31 gouriano * PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.7 * * Revision 1.7 2003/07/17 20:43:17 soussov * connections pool improvements * * Revision 1.6 2003/06/06 18:43:15 soussov * Removes SetPacketSize() * * Revision 1.5 2003/06/05 15:57:02 soussov * adds DumpResults method for LangCmd and RPC, SetResultProcessor method for Connection interface * * Revision 1.4 2003/05/05 20:45:51 ucko * Lowercase header names for compatibility with Unix. * * Revision 1.3 2003/02/13 15:43:44 ivanov * Added export specifier NCBI_DBAPIDRIVER_ODBC_EXPORT for class definitions * * Revision 1.2 2002/07/03 21:48:08 soussov * adds DSN support if needed * * Revision 1.1 2002/06/18 22:00:53 soussov * initial commit * * =========================================================================== */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -