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

📄 conn_impl.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: conn_impl.hpp,v $ * PRODUCTION Revision 1000.3  2004/04/21 14:47:52  gouriano * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.15 * PRODUCTION * =========================================================================== */#ifndef _CONN_IMPL_HPP_#define _CONN_IMPL_HPP_/* $Id: conn_impl.hpp,v 1000.3 2004/04/21 14:47:52 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.   ** ===========================================================================** File Name:  $Id: conn_impl.hpp,v 1000.3 2004/04/21 14:47:52 gouriano Exp $** Author:  Michael Kholodov*   * File Description:  Connection implementation*** $Log: conn_impl.hpp,v $* Revision 1000.3  2004/04/21 14:47:52  gouriano* PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.15** Revision 1.15  2004/04/08 15:56:58  kholodov* Multiple bug fixes and optimizations** Revision 1.14  2004/03/08 22:15:19  kholodov* Added: 3 new Get...() methods internally** Revision 1.13  2003/11/18 16:59:45  kholodov* Added: CloneConnection() method** Revision 1.12  2003/05/16 20:17:28  kholodov* Modified: default 0 arguments in PrepareCall()** Revision 1.11  2003/03/07 21:21:15  kholodov* Added: IsAlive() method** Revision 1.10  2002/11/27 17:19:49  kholodov* Added: Error output redirection to CToMultiExHandler object.** Revision 1.9  2002/09/30 20:45:34  kholodov* Added: ForceSingle() method to enforce single connection used** Revision 1.8  2002/09/23 18:25:10  kholodov* Added: GetDataSource() method.** Revision 1.7  2002/09/18 18:49:26  kholodov* Modified: class declaration and Action method to reflect* direct inheritance of CActiveObject from IEventListener** Revision 1.6  2002/09/16 19:34:41  kholodov* Added: bulk insert support** Revision 1.5  2002/05/16 22:11:11  kholodov* Improved: using minimum connections possible** Revision 1.4  2002/02/08 22:43:11  kholodov* Set/GetDataBase() renamed to Set/GetDatabase() respectively** Revision 1.3  2002/02/08 21:29:55  kholodov* SetDataBase() restored, connection cloning algorithm changed** Revision 1.2  2002/02/08 17:47:34  kholodov* Removed SetDataBase() method** Revision 1.1  2002/01/30 14:51:22  kholodov* User DBAPI implementation, first commit****/#include <dbapi/dbapi.hpp>#include "active_obj.hpp"BEGIN_NCBI_SCOPEclass CDataSource;class CConnection : public CActiveObject,                     public IConnection{public:    CConnection(CDataSource* ds);public:    virtual ~CConnection();    virtual void SetMode(EConnMode mode);    virtual void ResetMode(EConnMode mode);    virtual unsigned int GetModeMask();    virtual void ForceSingle(bool enable);    virtual IDataSource* GetDataSource();    virtual void Connect(const string& user,                         const string& password,                         const string& server,                         const string& database = kEmptyStr);    virtual IConnection* CloneConnection();    // New part begin    virtual IStatement* GetStatement();    virtual ICallableStatement* GetCallableStatement(const string& proc,                                                     int nofArgs = 0);    virtual ICursor* GetCursor(const string& name,                               const string& sql,                               int nofArgs,                               int batchSize);    virtual IBulkInsert* GetBulkInsert(const string& table_name,                                       unsigned int nof_cols);    // New part end    virtual IStatement* CreateStatement();    virtual ICallableStatement* PrepareCall(const string& proc,                                            int nofArgs = 0);    virtual ICursor* CreateCursor(const string& name,                                  const string& sql,                                  int nofArgs,                                  int batchSize);    virtual IBulkInsert* CreateBulkInsert(const string& table_name,                                          unsigned int nof_cols);    virtual void Close();    CConnection* Clone();    CDB_Connection* GetCDB_Connection() {        return m_connection;    }    CDB_Connection* CloneCDB_Conn();    virtual void SetDatabase(const string& name);    virtual string GetDatabase();    virtual bool IsAlive();    void SetDbName(const string& name, CDB_Connection* conn = 0);    bool IsAux() {        return m_connCounter < 0;    }    // Interface IEventListener implementation    virtual void Action(const CDbapiEvent& e);    // If enabled, redirects all error messages     // to CDB_MultiEx object (see below)    virtual void MsgToEx(bool v);    // Returns all error messages as a CDB_MultiEx object    virtual CDB_MultiEx* GetErrorAsEx();    // Returns all error messages as a single string    virtual string GetErrorInfo();protected:    CConnection(class CDB_Connection *conn,                 CDataSource* ds);    // Clone connection, if the original cmd structure is taken    CConnection* GetAuxConn();    // void DeleteConn(CConnection* conn);    class CToMultiExHandler* GetHandler();    void FreeResources();private:    string m_database;    class CDataSource* m_ds;    CDB_Connection *m_connection;    int m_connCounter;    bool m_connUsed;    unsigned int m_modeMask;    bool m_forceSingle;    class CToMultiExHandler *m_multiExH;    // New part begin    class CStatement *m_stmt;    class CCallableStatement *m_cstmt;    class CCursor *m_cursor;    class CBulkInsert *m_bulkInsert;    // New part end};//====================================================================END_NCBI_SCOPE#endif // _CONN_IMPL_HPP_

⌨️ 快捷键说明

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