mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
82e746ea1b
included by the program using them. Continuing implementing the "catalog" tables (ex "info"). Already existing were the ODBC data source table and the WMI column info table. A common way to handle them will permit to develop many other such tables. Implemented: The ODBC column catalog table. The ODBC tables catalog table. The ODBC drivers catalog table. The INFO table option is replaced by the CATFUNC string option whode first letter specifies the information to retrieve: C: Columns (of a table) T: Tables (of a database) S: Data sources D: Drivers Modified: ha_connect.cc odbconn.cpp odbconn.h tabodbc.h tabodbc.cpp rcmsg.c tabfmt.h tabmysql.cpp tabwmi.cpp tabwmi.h resource.h myconn.h filamdbf.h connect.cc connect.h Added: myutil.h
92 lines
3.4 KiB
C++
92 lines
3.4 KiB
C++
/***********************************************************************/
|
|
/* MYCONN.H Olivier Bertrand 2007-2012 */
|
|
/* */
|
|
/* 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 TYPE_AM_MYSQL (AMT)192
|
|
#define MYSQL_ENABLED 0x00000001
|
|
#define MYSQL_LOGON 0x00000002
|
|
|
|
typedef class MYSQLC *PMYC;
|
|
|
|
/***********************************************************************/
|
|
/* Prototypes of info functions. */
|
|
/***********************************************************************/
|
|
PQRYRES MyColumns(PGLOBAL g, const char *host, const char *db,
|
|
const char *user, const char *pwd,
|
|
const char *table, const char *colpat,
|
|
int port, bool key);
|
|
|
|
/* -------------------------- MYCONN class --------------------------- */
|
|
|
|
/***********************************************************************/
|
|
/* MYSQLC exported/imported class. A MySQL connection. */
|
|
/***********************************************************************/
|
|
class DllItem MYSQLC {
|
|
friend class TDBMYSQL;
|
|
// Construction
|
|
public:
|
|
MYSQLC(void);
|
|
|
|
// Implementation
|
|
int GetRows(void) {return m_Rows;}
|
|
bool Connected(void);
|
|
|
|
// Methods
|
|
// int GetCurPos(void) {return (m_Res) ? N : 0;}
|
|
// int GetProgCur(void) {return N;}
|
|
int GetResultSize(PGLOBAL g, PSZ sql);
|
|
int Open(PGLOBAL g, const char *host, const char *db,
|
|
const char *user= "root", const char *pwd= "*",
|
|
int pt= 0);
|
|
ulong GetThreadID(void);
|
|
ulong ServerVersion(void);
|
|
const char *ServerInfo(void);
|
|
int KillQuery(ulong id);
|
|
int ExecSQL(PGLOBAL g, const char *query, int *w = NULL);
|
|
int PrepareSQL(PGLOBAL g, const char *query);
|
|
int ExecStmt(PGLOBAL g);
|
|
int BindParams(PGLOBAL g, MYSQL_BIND *bind);
|
|
PQRYRES GetResult(PGLOBAL g, bool pdb = FALSE);
|
|
int Fetch(PGLOBAL g, int pos);
|
|
char *GetCharField(int i);
|
|
int GetFieldLength(int i);
|
|
void Rewind(void);
|
|
void FreeResult(void);
|
|
void Close(void);
|
|
void DiscardResults(void);
|
|
|
|
protected:
|
|
// Members
|
|
MYSQL *m_DB; // The return from MySQL connection
|
|
MYSQL_STMT *m_Stmt; // Prepared statement handle
|
|
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
|
|
}; // end of class MYSQLC
|
|
|