⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interfaces.hpp

📁 ncbi源码
💻 HPP
📖 第 1 页 / 共 2 页
字号:
/* * =========================================================================== * PRODUCTION $Log: interfaces.hpp,v $ * PRODUCTION Revision 1000.0  2003/10/29 20:19:28  gouriano * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.18 * PRODUCTION * =========================================================================== */#ifndef DBAPI_DRIVER_DBLIB___INTERFACES__HPP#define DBAPI_DRIVER_DBLIB___INTERFACES__HPP/* $Id: interfaces.hpp,v 1000.0 2003/10/29 20:19:28 gouriano Exp $ * =========================================================================== * *                            PUBLIC DOMAIN NOTICE *               National Center for Biotechnology Information * *  This software/database is a "United States Government Work" under the *  terms of the United States Copyright Act.  It was written as part of *  the author's official duties as a United States Government employee and *  thus cannot be copyrighted.  This software/database is freely available *  to the public for use. The National Library of Medicine and the U.S. *  Government have not placed any restriction on its use or reproduction. * *  Although all reasonable efforts have been taken to ensure the accuracy *  and reliability of the software and data, the NLM and the U.S. *  Government do not and cannot warrant the performance or results that *  may be obtained by using this software or data. The NLM and the U.S. *  Government disclaim all warranties, express or implied, including *  warranties of performance, merchantability or fitness for any particular *  purpose. * *  Please cite the author in any work or product based on this material. * * =========================================================================== * * Author:  Vladimir Soussov * * File Description:  Driver for Sybase DBLib server * */#include <dbapi/driver/public.hpp>#include <dbapi/driver/util/parameters.hpp>#include <dbapi/driver/util/handle_stack.hpp>#include <dbapi/driver/util/pointer_pot.hpp>#include <sybfront.h>#include <sybdb.h>#include <syberror.h>BEGIN_NCBI_SCOPEclass CDBLibContext;class CDBL_Connection;class CDBL_LangCmd;class CDBL_RPCCmd;class CDBL_CursorCmd;class CDBL_BCPInCmd;class CDBL_SendDataCmd;class CDBL_RowResult;class CDBL_ParamResult;class CDBL_ComputeResult;class CDBL_StatusResult;class CDBL_CursorResult;class CDBL_BlobResult;const unsigned int kDBLibMaxNameLen = 128 + 4;/////////////////////////////////////////////////////////////////////////////////  CDBLibContext:://class NCBI_DBAPIDRIVER_DBLIB_EXPORT CDBLibContext : public I_DriverContext{    friend class CDB_Connection;public:    CDBLibContext(DBINT version = DBVERSION_46);    //    // GENERIC functionality (see in <dbapi/driver/interfaces.hpp>)    //    virtual bool SetLoginTimeout (unsigned int nof_secs = 0);    virtual bool SetTimeout      (unsigned int nof_secs = 0);    virtual bool SetMaxTextImageSize(size_t nof_bytes);    virtual CDB_Connection* Connect(const string&   srv_name,                                    const string&   user_name,                                    const string&   passwd,                                    TConnectionMode mode,                                    bool            reusable  = false,                                    const string&   pool_name = kEmptyStr);    virtual bool IsAbleTo(ECapability cpb) const;    virtual ~CDBLibContext();    //    // DBLIB specific functionality    //    // the following methods are optional (driver will use the default    // values if not called)    // the values will affect the new connections only    virtual void DBLIB_SetApplicationName(const string& a_name);    virtual void DBLIB_SetHostName(const string& host_name);    virtual void DBLIB_SetPacketSize(int p_size);    virtual bool DBLIB_SetMaxNofConns(int n);    static  int  DBLIB_dberr_handler(DBPROCESS*    dblink,   int     severity,                                     int           dberr,    int     oserr,                                     const string& dberrstr,                                     const string& oserrstr);    static  void DBLIB_dbmsg_handler(DBPROCESS*    dblink,   DBINT   msgno,                                     int           msgstate, int     severity,                                     const string& msgtxt,                                     const string& srvname,                                     const string& procname,                                     int           line);private:    static CDBLibContext* m_pDBLibContext;    string                m_AppName;    string                m_HostName;    short                 m_PacketSize;    LOGINREC*             m_Login;    DBPROCESS* x_ConnectToServer(const string&   srv_name,                                 const string&   user_name,                                 const string&   passwd,                                 TConnectionMode mode);};/////////////////////////////////////////////////////////////////////////////////  CTL_Connection:://class NCBI_DBAPIDRIVER_DBLIB_EXPORT CDBL_Connection : public I_Connection{    friend class CDBLibContext;    friend class CDB_Connection;    friend class CDBL_LangCmd;    friend class CDBL_RPCCmd;    friend class CDBL_CursorCmd;    friend class CDBL_BCPInCmd;    friend class CDBL_SendDataCmd;protected:    CDBL_Connection(CDBLibContext* cntx, DBPROCESS* con,                    bool reusable, const string& pool_name);    virtual bool IsAlive();    virtual CDB_LangCmd*     LangCmd(const string&       lang_query,                                     unsigned int        nof_params = 0);    virtual CDB_RPCCmd*      RPC(const string&           rpc_name,                                 unsigned int            nof_args);    virtual CDB_BCPInCmd*    BCPIn(const string&         table_name,                                   unsigned int          nof_columns);    virtual CDB_CursorCmd*   Cursor(const string&        cursor_name,                                    const string&        query,                                    unsigned int         nof_params,                                    unsigned int         batch_size = 1);    virtual CDB_SendDataCmd* SendDataCmd(I_ITDescriptor& desc,                                         size_t          data_size,                                         bool            log_it = true);    virtual bool SendData(I_ITDescriptor& desc, CDB_Image& img,                          bool log_it = true);    virtual bool SendData(I_ITDescriptor& desc, CDB_Text&  txt,                          bool log_it = true);    virtual bool Refresh();    virtual const string& ServerName() const;    virtual const string& UserName()   const;    virtual const string& Password()   const;    virtual I_DriverContext::TConnectionMode ConnectMode() const;    virtual bool IsReusable() const;    virtual const string& PoolName() const;    virtual I_DriverContext* Context() const;    virtual void PushMsgHandler(CDB_UserHandler* h);    virtual void PopMsgHandler (CDB_UserHandler* h);    virtual CDB_ResultProcessor* SetResultProcessor(CDB_ResultProcessor* rp);    virtual void Release();    virtual ~CDBL_Connection();    void DropCmd(CDB_BaseEnt& cmd);private:    bool x_SendData(I_ITDescriptor& desc, CDB_Stream& img, bool log_it = true);    I_ITDescriptor* x_GetNativeITDescriptor(const CDB_ITDescriptor& descr_in);    RETCODE x_Results(DBPROCESS* pLink);    DBPROCESS*      m_Link;    CDBLibContext*  m_Context;    CPointerPot     m_CMDs;    CDBHandlerStack m_MsgHandlers;    string          m_Server;    string          m_User;    string          m_Passwd;    string          m_Pool;    bool            m_Reusable;    bool            m_BCPAble;    bool            m_SecureLogin;    CDB_ResultProcessor* m_ResProc;};/////////////////////////////////////////////////////////////////////////////////  CDBL_LangCmd:://class NCBI_DBAPIDRIVER_DBLIB_EXPORT CDBL_LangCmd : public I_LangCmd{    friend class CDBL_Connection;protected:    CDBL_LangCmd(CDBL_Connection* conn, DBPROCESS* cmd,                 const string& lang_query, unsigned int nof_params);    virtual bool More(const string& query_text);    virtual bool BindParam(const string& param_name, CDB_Object* param_ptr);    virtual bool SetParam(const string& param_name, CDB_Object* param_ptr);    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 Release();    virtual ~CDBL_LangCmd();private:    bool x_AssignParams();    CDBL_Connection* m_Connect;    DBPROCESS*       m_Cmd;    string           m_Query;    CDB_Params       m_Params;    bool             m_WasSent;    bool             m_HasFailed;    I_Result*        m_Res;    int              m_RowCount;    unsigned int     m_Status;};/////////////////////////////////////////////////////////////////////////////////  CTL_RPCCmd:://class NCBI_DBAPIDRIVER_DBLIB_EXPORT CDBL_RPCCmd : public I_RPCCmd{    friend class CDBL_Connection;protected:    CDBL_RPCCmd(CDBL_Connection* con, DBPROCESS* cmd,                const string& proc_name, unsigned int nof_params);    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();    ~CDBL_RPCCmd();private:    bool x_AssignParams(char* param_buff);    CDBL_Connection* m_Connect;    DBPROCESS*       m_Cmd;    string           m_Query;    CDB_Params       m_Params;    bool             m_WasSent;    bool             m_HasFailed;    bool             m_Recompile;    I_Result*        m_Res;    int              m_RowCount;    unsigned int     m_Status;};/////////////////////////////////////////////////////////////////////////////////  CDBL_CursorCmd:://class NCBI_DBAPIDRIVER_DBLIB_EXPORT CDBL_CursorCmd : public I_CursorCmd{    friend class CDBL_Connection;protected:    CDBL_CursorCmd(CDBL_Connection* con, DBPROCESS* cmd,                   const string& cursor_name, const string& query,                   unsigned int nof_params);    virtual bool BindParam(const string& param_name, CDB_Object* pVal);    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 ~CDBL_CursorCmd();private:    bool x_AssignParams();    I_ITDescriptor* x_GetITDescriptor(unsigned int item_num);    CDBL_Connection*   m_Connect;    DBPROCESS*         m_Cmd;    string             m_Name;    CDB_LangCmd*       m_LCmd;    string             m_Query;    CDB_Params         m_Params;    bool               m_IsOpen;    bool               m_HasFailed;    bool               m_IsDeclared;    CDBL_CursorResult* m_Res;    int                m_RowCount;};/////////////////////////////////////////////////////////////////////////////////  CDBL_BCPInCmd:://class NCBI_DBAPIDRIVER_DBLIB_EXPORT CDBL_BCPInCmd : public I_BCPInCmd{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -