summaryrefslogtreecommitdiffstats
path: root/storage/connect/myconn.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/connect/myconn.h')
-rw-r--r--storage/connect/myconn.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/storage/connect/myconn.h b/storage/connect/myconn.h
new file mode 100644
index 00000000..5f64f933
--- /dev/null
+++ b/storage/connect/myconn.h
@@ -0,0 +1,105 @@
+/***********************************************************************/
+/* MYCONN.H Olivier Bertrand 2007-2013 */
+/* */
+/* This is the declaration file for the MySQL connection class and */
+/* a few utility functions used to communicate with MySQL. */
+/* */
+/* DO NOT define DLL_EXPORT in your application so these items are */
+/* declared are imported from the Myconn DLL. */
+/***********************************************************************/
+#if defined(_WIN32)
+#include <winsock.h>
+#else // !_WIN32
+#include <sys/socket.h>
+#endif // !_WIN32
+#include <mysql.h>
+#include <errmsg.h>
+#include "myutil.h"
+
+#if defined(_WIN32) && defined(MYCONN_EXPORTS)
+#if defined(DLL_EXPORT)
+#define DllItem _declspec(dllexport)
+#else // !DLL_EXPORT
+#define DllItem _declspec(dllimport)
+#endif // !DLL_EXPORT
+#else // !_WIN32 || !MYCONN_EXPORTS
+#define DllItem
+#endif // !_WIN32
+
+#define MYSQL_ENABLED 0x00000001
+#define MYSQL_LOGON 0x00000002
+
+typedef class MYSQLC *PMYC;
+
+/***********************************************************************/
+/* Prototypes of info functions. */
+/***********************************************************************/
+PQRYRES MyColumns(PGLOBAL g, THD *thd, const char *host, const char *db,
+ const char *user, const char *pwd,
+ const char *table, const char *colpat,
+ int port, bool info);
+
+PQRYRES SrcColumns(PGLOBAL g, const char *host, const char *db,
+ const char *user, const char *pwd,
+ const char *srcdef, int port);
+
+uint GetDefaultPort(void);
+
+/* -------------------------- MYCONN class --------------------------- */
+
+/***********************************************************************/
+/* MYSQLC exported/imported class. A MySQL connection. */
+/***********************************************************************/
+class DllItem MYSQLC {
+ friend class TDBMYSQL;
+ friend class MYSQLCOL;
+ friend class TDBMYEXC;
+ // Construction
+ public:
+ MYSQLC(void);
+
+ // Implementation
+ int GetRows(void) {return m_Rows;}
+ bool Connected(void);
+
+ // Methods
+ int GetResultSize(PGLOBAL g, PSZ sql);
+ int GetTableSize(PGLOBAL g, PSZ query);
+ int Open(PGLOBAL g, const char *host, const char *db,
+ const char *user= "root", const char *pwd= "*",
+ int pt= 0, const char *csname = NULL);
+ int KillQuery(ulong id);
+ int ExecSQL(PGLOBAL g, const char *query, int *w = NULL);
+ int ExecSQLcmd(PGLOBAL g, const char *query, int *w);
+#if defined(MYSQL_PREPARED_STATEMENTS)
+ int PrepareSQL(PGLOBAL g, const char *query);
+ int ExecStmt(PGLOBAL g);
+ int BindParams(PGLOBAL g, MYSQL_BIND *bind);
+#endif // MYSQL_PREPARED_STATEMENTS
+ PQRYRES GetResult(PGLOBAL g, bool pdb = FALSE);
+ int Fetch(PGLOBAL g, int pos);
+ char *GetCharField(int i);
+ int GetFieldLength(int i);
+ int Rewind(PGLOBAL g, PSZ sql);
+ void FreeResult(void);
+ void Close(void);
+
+ protected:
+ MYSQL_FIELD *GetNextField(void);
+ void DataSeek(my_ulonglong row);
+
+ // Members
+ MYSQL *m_DB; // The return from MySQL connection
+#if defined (MYSQL_PREPARED_STATEMENTS)
+ MYSQL_STMT *m_Stmt; // Prepared statement handle
+#endif // MYSQL_PREPARED_STATEMENTS
+ MYSQL_RES *m_Res; // Points to MySQL Result
+ MYSQL_ROW m_Row; // Point to current row
+ int m_Rows; // The number of rows of the result
+ int N;
+ int m_Fields; // The number of result fields
+ int m_Afrw; // The number of affected rows
+ bool m_Use; // Use or store result set
+ const char *csname; // Table charset name
+ }; // end of class MYSQLC
+