connection.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:6k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: connection.cpp,v $
  4.  * PRODUCTION Revision 1000.2  2004/06/01 19:21:23  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /* $Id: connection.cpp,v 1000.2 2004/06/01 19:21:23 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Author:  Anton Butanayev
  35.  *
  36.  * File Description:  Driver for MySQL server
  37.  *
  38.  */
  39. #include <ncbi_pch.hpp>
  40. #include <dbapi/driver/mysql/interfaces.hpp>
  41. #include <memory>
  42. BEGIN_NCBI_SCOPE
  43. CMySQL_Connection::CMySQL_Connection(CMySQLContext* cntx,
  44.                                      const string&  srv_name,
  45.                                      const string&  user_name,
  46.                                      const string&  passwd)
  47.     : m_Context(cntx)
  48. {
  49.     if ( !mysql_init(&m_MySQL) ) {
  50.         throw CDB_ClientEx(eDB_Warning, 800001,
  51.                            "CMySQL_Connection::CMySQL_Connection",
  52.                            "Failed: mysql_init");
  53.     }
  54.     if ( !mysql_real_connect(&m_MySQL,
  55.                              srv_name.c_str(),
  56.                              user_name.c_str(), passwd.c_str(),
  57.                              NULL, 0, NULL, 0)) {
  58.         throw CDB_ClientEx(eDB_Warning, 800002,
  59.                            "CMySQL_Connection::CMySQL_Connection",
  60.                            "Failed: mysql_real_connect");
  61.     }
  62. }
  63. CMySQL_Connection::~CMySQL_Connection()
  64. {
  65.     mysql_close(&m_MySQL);
  66. }
  67. bool CMySQL_Connection::IsAlive()
  68. {
  69.     return false;
  70. }
  71. void CMySQL_Connection::Release()
  72. {
  73. }
  74. CDB_SendDataCmd* CMySQL_Connection::SendDataCmd(I_ITDescriptor& /*descr_in*/,
  75.                                                 size_t          /*data_size*/,
  76.                                                 bool            /*log_it*/)
  77. {
  78.     return 0;
  79. }
  80. bool CMySQL_Connection::SendData(I_ITDescriptor& /*desc*/,
  81.                                  CDB_Image&      /*img*/,
  82.                                  bool            /*log_it*/)
  83. {
  84.     return true;
  85. }
  86. bool CMySQL_Connection::SendData(I_ITDescriptor& /*desc*/,
  87.                                  CDB_Text&       /*txt*/,
  88.                                  bool            /*log_it*/)
  89. {
  90.     return true;
  91. }
  92. bool CMySQL_Connection::Refresh()
  93. {
  94.     return true;
  95. }
  96. const string& CMySQL_Connection::ServerName() const
  97. {
  98.     return kEmptyStr;
  99. }
  100. const string& CMySQL_Connection::UserName() const
  101. {
  102.     return kEmptyStr;
  103. }
  104. const string& CMySQL_Connection::Password() const
  105. {
  106.     return kEmptyStr;
  107. }
  108. I_DriverContext::TConnectionMode CMySQL_Connection::ConnectMode() const
  109. {
  110.     return 0;
  111. }
  112. bool CMySQL_Connection::IsReusable() const
  113. {
  114.     return false;
  115. }
  116. const string& CMySQL_Connection::PoolName() const
  117. {
  118.     return kEmptyStr;
  119. }
  120. I_DriverContext* CMySQL_Connection::Context() const
  121. {
  122.     return m_Context;
  123. }
  124. void CMySQL_Connection::PushMsgHandler(CDB_UserHandler* /*h*/)
  125. {
  126. }
  127. void CMySQL_Connection::PopMsgHandler (CDB_UserHandler* /*h*/)
  128. {
  129. }
  130. CDB_ResultProcessor* CMySQL_Connection::SetResultProcessor(CDB_ResultProcessor* rp)
  131. {
  132.     CDB_ResultProcessor* r= m_ResProc;
  133.     m_ResProc= rp;
  134.     return r;
  135. }
  136. CDB_LangCmd* CMySQL_Connection::LangCmd(const string& lang_query,
  137.                                         unsigned int  nof_parms)
  138. {
  139.     return Create_LangCmd(*new CMySQL_LangCmd(this, lang_query, nof_parms));
  140. }
  141. CDB_RPCCmd *CMySQL_Connection::RPC(const string& /*rpc_name*/,
  142.                                    unsigned int  /*nof_args*/)
  143. {
  144.     return 0;
  145. }
  146. CDB_BCPInCmd* CMySQL_Connection::BCPIn(const string& /*table_name*/,
  147.                                        unsigned int  /*nof_columns*/)
  148. {
  149.     return 0;
  150. }
  151. CDB_CursorCmd *CMySQL_Connection::Cursor(const string& /*cursor_name*/,
  152.                                          const string& /*query*/,
  153.                                          unsigned int  /*nof_params*/,
  154.                                          unsigned int  /*batch_size*/)
  155. {
  156.     return 0;
  157. }
  158. END_NCBI_SCOPE
  159. /*
  160.  * ===========================================================================
  161.  * $Log: connection.cpp,v $
  162.  * Revision 1000.2  2004/06/01 19:21:23  gouriano
  163.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6
  164.  *
  165.  * Revision 1.6  2004/05/17 21:15:34  gorelenk
  166.  * Added include of PCH ncbi_pch.hpp
  167.  *
  168.  * Revision 1.5  2004/03/24 19:46:53  vysokolo
  169.  * addaed support of blob
  170.  *
  171.  * Revision 1.4  2003/06/05 16:02:48  soussov
  172.  * adds code for DumpResults and for the dumped results processing
  173.  *
  174.  * Revision 1.3  2003/01/06 20:30:26  vakatov
  175.  * Get rid of some redundant header(s).
  176.  * Formally reformatted to closer meet C++ Toolkit/DBAPI style.
  177.  *
  178.  * Revision 1.2  2002/08/28 17:18:20  butanaev
  179.  * Improved error handling, demo app.
  180.  *
  181.  * Revision 1.1  2002/08/13 20:23:14  butanaev
  182.  * The beginning.
  183.  *
  184.  * ===========================================================================
  185.  */