summaryrefslogtreecommitdiff
path: root/ndb/src/old_files/client/odbc/handles/HandleDbc.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ndb/src/old_files/client/odbc/handles/HandleDbc.hpp')
-rw-r--r--ndb/src/old_files/client/odbc/handles/HandleDbc.hpp111
1 files changed, 111 insertions, 0 deletions
diff --git a/ndb/src/old_files/client/odbc/handles/HandleDbc.hpp b/ndb/src/old_files/client/odbc/handles/HandleDbc.hpp
new file mode 100644
index 00000000000..130df08d02c
--- /dev/null
+++ b/ndb/src/old_files/client/odbc/handles/HandleDbc.hpp
@@ -0,0 +1,111 @@
+/* Copyright (C) 2003 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#ifndef ODBC_HANDLES_HandleDbc_hpp
+#define ODBC_HANDLES_HandleDbc_hpp
+
+#include <list>
+#include <common/common.hpp>
+#include <common/ConnArea.hpp>
+#include "HandleBase.hpp"
+
+class HandleRoot;
+class HandleEnv;
+class HandleStmt;
+class HandleDesc;
+
+/**
+ * @class HandleDbc
+ * @brief Connection handle (SQLHDBC).
+ */
+class HandleDbc : public HandleBase, public ConnArea {
+public:
+ HandleDbc(HandleEnv* pEnv);
+ ~HandleDbc();
+ void ctor(Ctx& ctx);
+ void dtor(Ctx& ctx);
+ HandleEnv* getEnv();
+ HandleBase* getParent();
+ HandleRoot* getRoot();
+ OdbcHandle odbcHandle();
+ // allocate and free handles
+ void sqlAllocStmt(Ctx& ctx, HandleStmt** ppStmt);
+ void sqlAllocDesc(Ctx& ctx, HandleDesc** ppDesc);
+ void sqlAllocHandle(Ctx& ctx, SQLSMALLINT childType, HandleBase** ppChild);
+ void sqlFreeStmt(Ctx& ctx, HandleStmt* pStmt, SQLUSMALLINT iOption);
+ void sqlFreeDesc(Ctx& ctx, HandleDesc* pDesc);
+ void sqlFreeHandle(Ctx& ctx, SQLSMALLINT childType, HandleBase* pChild);
+ // attributes and info functions
+ void sqlSetConnectAttr(Ctx& ctx, SQLINTEGER attribute, SQLPOINTER value, SQLINTEGER stringLength);
+ void sqlGetConnectAttr(Ctx& ctx, SQLINTEGER attribute, SQLPOINTER value, SQLINTEGER bufferLength, SQLINTEGER* stringLength);
+ void sqlSetConnectOption(Ctx& ctx, SQLUSMALLINT option, SQLUINTEGER value); // odbc2.0
+ void sqlGetConnectOption(Ctx& ctx, SQLUSMALLINT option, SQLPOINTER value); // odbc2.0
+ void sqlGetFunctions(Ctx& ctx, SQLUSMALLINT functionId, SQLUSMALLINT* supported);
+ void sqlGetInfo(Ctx& ctx, SQLUSMALLINT infoType, SQLPOINTER infoValue, SQLSMALLINT bufferLength, SQLSMALLINT* stringLength);
+ int getOdbcVersion(Ctx& ctx);
+ // connect and transactions
+ void sqlConnect(Ctx& ctx, SQLCHAR* serverName, SQLSMALLINT nameLength1, SQLCHAR* userName, SQLSMALLINT nameLength2, SQLCHAR* authentication, SQLSMALLINT nameLength3);
+ void sqlDriverConnect(Ctx& ctx, SQLHWND hwnd, SQLCHAR* szConnStrIn, SQLSMALLINT cbConnStrIn, SQLCHAR* szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT* pcbConnStrOut, SQLUSMALLINT fDriverCompletion);
+ void sqlDisconnect(Ctx& ctx);
+ void sqlEndTran(Ctx& ctx, SQLSMALLINT completionType);
+ void sqlTransact(Ctx& ctx, SQLUSMALLINT completionType); // odbc2.0
+private:
+ HandleEnv* const m_env;
+ typedef std::list<HandleStmt*> ListStmt;
+ ListStmt m_listStmt;
+ typedef std::list<HandleDesc*> ListDesc;
+ ListDesc m_listDesc;
+ static AttrSpec m_attrSpec[];
+ AttrArea m_attrArea;
+ struct FuncTab {
+ SQLUSMALLINT m_functionId;
+ int m_supported;
+ };
+ static FuncTab m_funcTab[];
+ struct InfoTab {
+ SQLUSMALLINT m_id;
+ enum { Char, YesNo, Short, Long, Bitmask, End } m_format;
+ SQLUINTEGER m_int;
+ const char* m_str;
+ };
+ static InfoTab m_infoTab[];
+};
+
+inline HandleEnv*
+HandleDbc::getEnv()
+{
+ return m_env;
+}
+
+inline HandleBase*
+HandleDbc::getParent()
+{
+ return (HandleBase*)getEnv();
+}
+
+inline HandleRoot*
+HandleDbc::getRoot()
+{
+ return getParent()->getRoot();
+}
+
+inline OdbcHandle
+HandleDbc::odbcHandle()
+{
+ return Odbc_handle_dbc;
+}
+
+#endif