| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 | 
							- /*
 
-  * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
 
-  *
 
-  * This program is free software; you can redistribute it and/or modify
 
-  * it under the terms of the GNU General Public License, version 2.0, as
 
-  * published by the Free Software Foundation.
 
-  *
 
-  * This program is also distributed with certain software (including
 
-  * but not limited to OpenSSL) that is licensed under separate terms,
 
-  * as designated in a particular file or component or in included license
 
-  * documentation.  The authors of MySQL hereby grant you an
 
-  * additional permission to link the program and your derivative works
 
-  * with the separately licensed software that they have included with
 
-  * MySQL.
 
-  *
 
-  * Without limiting anything contained in the foregoing, this file,
 
-  * which is part of MySQL Connector/C++, is also subject to the
 
-  * Universal FOSS Exception, version 1.0, a copy of which can be found at
 
-  * http://oss.oracle.com/licenses/universal-foss-exception.
 
-  *
 
-  * This program is distributed in the hope that it will be useful, but
 
-  * WITHOUT ANY WARRANTY; without even the implied warranty of
 
-  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-  * See the GNU General Public License, version 2.0, for more details.
 
-  *
 
-  * You should have received a copy of the GNU General Public License
 
-  * along with this program; if not, write to the Free Software Foundation, Inc.,
 
-  * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
 
-  */
 
- #ifndef _MYSQL_CONNECTION_H_
 
- #define _MYSQL_CONNECTION_H_
 
- #include "cppconn/connection.h"
 
- #include <boost/shared_ptr.hpp>
 
- #include <boost/scoped_ptr.hpp>
 
- namespace sql
 
- {
 
- namespace mysql
 
- {
 
- class MySQL_Savepoint : public sql::Savepoint
 
- {
 
-   sql::SQLString name;
 
- public:
 
-   MySQL_Savepoint(const sql::SQLString &savepoint);
 
-   virtual ~MySQL_Savepoint() {}
 
-   int getSavepointId();
 
-   sql::SQLString getSavepointName();
 
- private:
 
-   /* Prevent use of these */
 
-   MySQL_Savepoint(const MySQL_Savepoint &);
 
-   void operator=(MySQL_Savepoint &);
 
- };
 
- class MySQL_DebugLogger;
 
- struct MySQL_ConnectionData; /* PIMPL */
 
- class MySQL_Statement;
 
- namespace NativeAPI
 
- {
 
- class NativeConnectionWrapper;
 
- }
 
- class CPPCONN_PUBLIC_FUNC MySQL_Connection : public sql::Connection
 
- {
 
-   MySQL_Statement * createServiceStmt();
 
- public:
 
-   MySQL_Connection(Driver * _driver,
 
-           ::sql::mysql::NativeAPI::NativeConnectionWrapper & _proxy,
 
-           const sql::SQLString& hostName,
 
-           const sql::SQLString& userName,
 
-           const sql::SQLString& password);
 
-   MySQL_Connection(Driver * _driver, ::sql::mysql::NativeAPI::NativeConnectionWrapper & _proxy,
 
-           std::map< sql::SQLString, sql::ConnectPropertyVal > & options);
 
-   virtual ~MySQL_Connection();
 
-   void clearWarnings();
 
-   void close();
 
-   void commit();
 
-   sql::Statement * createStatement();
 
-   sql::SQLString escapeString(const sql::SQLString &);
 
-   bool getAutoCommit();
 
-   sql::SQLString getCatalog();
 
-   Driver *getDriver();
 
-   sql::SQLString getSchema();
 
-   sql::SQLString getClientInfo();
 
-   void getClientOption(const sql::SQLString & optionName, void * optionValue);
 
-   sql::SQLString getClientOption(const sql::SQLString & optionName);
 
-   sql::DatabaseMetaData * getMetaData();
 
-   enum_transaction_isolation getTransactionIsolation();
 
-   const SQLWarning * getWarnings();
 
-   bool isClosed();
 
-   bool isReadOnly();
 
-   bool isValid();
 
-   bool reconnect();
 
-   sql::SQLString nativeSQL(const sql::SQLString& sql);
 
-   sql::PreparedStatement * prepareStatement(const sql::SQLString& sql);
 
-   sql::PreparedStatement * prepareStatement(const sql::SQLString& sql, int autoGeneratedKeys);
 
-   sql::PreparedStatement * prepareStatement(const sql::SQLString& sql, int columnIndexes[]);
 
-   sql::PreparedStatement * prepareStatement(const sql::SQLString& sql, int resultSetType, int resultSetConcurrency);
 
-   sql::PreparedStatement * prepareStatement(const sql::SQLString& sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability);
 
-   sql::PreparedStatement * prepareStatement(const sql::SQLString& sql, sql::SQLString columnNames[]);
 
-   void releaseSavepoint(Savepoint * savepoint) ;
 
-   void rollback();
 
-   void rollback(Savepoint * savepoint);
 
-   void setAutoCommit(bool autoCommit);
 
-   void setCatalog(const sql::SQLString& catalog);
 
-   void setSchema(const sql::SQLString& catalog);
 
-   sql::Connection * setClientOption(const sql::SQLString & optionName, const void * optionValue);
 
-   sql::Connection * setClientOption(const sql::SQLString & optionName, const sql::SQLString & optionValue);
 
-   void setHoldability(int holdability);
 
-   void setReadOnly(bool readOnly);
 
-   sql::Savepoint * setSavepoint();
 
-   sql::Savepoint * setSavepoint(const sql::SQLString& name);
 
-   void setTransactionIsolation(enum_transaction_isolation level);
 
-   virtual sql::SQLString getSessionVariable(const sql::SQLString & varname);
 
-   virtual void setSessionVariable(const sql::SQLString & varname, const sql::SQLString & value);
 
-   virtual void setSessionVariable(const sql::SQLString & varname, unsigned int value);
 
-   virtual sql::SQLString getLastStatementInfo();
 
- private:
 
-   /* We do not really think this class has to be subclassed*/
 
-   void checkClosed();
 
-   void init(std::map< sql::SQLString, sql::ConnectPropertyVal > & properties);
 
-   Driver * driver;
 
-   boost::shared_ptr< NativeAPI::NativeConnectionWrapper > proxy;
 
-   /* statement handle to execute queries initiated by driver. Perhaps it is
 
-      a good idea to move it to a separate helper class */
 
-   boost::scoped_ptr< ::sql::mysql::MySQL_Statement > service;
 
-   boost::scoped_ptr< ::sql::mysql::MySQL_ConnectionData > intern; /* pimpl */
 
-   /* Prevent use of these */
 
-   MySQL_Connection(const MySQL_Connection &);
 
-   void operator=(MySQL_Connection &);
 
- };
 
- } /* namespace mysql */
 
- } /* namespace sql */
 
- #endif // _MYSQL_CONNECTION_H_
 
- /*
 
-  * Local variables:
 
-  * tab-width: 4
 
-  * c-basic-offset: 4
 
-  * End:
 
-  * vim600: noet sw=4 ts=4 fdm=marker
 
-  * vim<600: noet sw=4 ts=4
 
-  */
 
 
  |