/********************************************************************************
*		ソースファイル名：MySqlControl.h										
*		用            途：MySQL制御クラス									
*		備            考：														
*		履            歴：														
********************************************************************************/
/****************************
*   コンパイル環境定数	    *
****************************/
#pragma once
/****************************
*   インクルードファイル    *
****************************/
#include "mysql.h"
/****************************
*        マクロ定義			*
****************************/
#define	ENCODE_CHARACTER_SET	_T("set names %s")
#define	SQL_SELECT				_T("select %s from %s")
#define	SQL_SELECT_WHERE		_T("select %s from %s where %s")
#define	SQL_SELECT_DISTINCT		_T("select distinct %s from %s")
#define	SQL_SELECT_ALL			_T("select * from %s")
#define	SQL_SELECT_ALL_WHERE	_T("select * from %s where %s")
#define	SQL_UPDATE				_T("update %s set %s")
#define	SQL_UPDATE_WHERE		_T("update %s set %s where %s")
#define	SQL_INSERT				_T("insert into %s (%s) values (%s)")
#define	SQL_INSERT_ALL			_T("insert into %s values (%s)")
#define	SQL_BULKINSERT			_T("insert into %s (%s) values %s")

#define	MAX_HOST_LEN			20
#define	MAX_USERNAME_LEN		20
#define	MAX_PASSWORD_LEN		20
#define	MAX_DBNAME_LEN			100
#define	MAX_CHARSET_LEN			100
/****************************
*        構造体定義		    *
****************************/
// MySQL情報構造体
typedef struct tagMySqlInfo{
	TCHAR	szHost		[MAX_HOST_LEN] ;
	TCHAR	szUser		[MAX_USERNAME_LEN] ;
	TCHAR	szPassword	[MAX_PASSWORD_LEN] ;
	TCHAR	szDbName	[MAX_DBNAME_LEN] ;
	TCHAR	szCharSet	[MAX_CHARSET_LEN] ;
	UINT32	uPortNo;
} T_MYSQL_INFO, *P_MYSQL_INFO ;

/****************************
*        クラス定義		    *
****************************/
// CMySqlControl
class CMySqlControl
{

public:
	// 公開メソッド
							CMySqlControl();
	virtual					~CMySqlControl();

			BOOL			Initialize		( 
												CString strHost,
												CString strUser,
												CString strPass,
												CString strDbName,
												CString strCharSet,
												UINT32	uDbPortNo
											) ;
			BOOL			Connect			() ;
			void			Close			() ;
			BOOL			SetQuery		( CString strSql ) ;
			my_ulonglong	GetRowCount		() ;
			UINT32			GetFieldCount	() ;
			void			SeekRow			( my_ulonglong ulRow ) ;
			CString			GetFieldData	( my_ulonglong ulRow, UINT32 uiField ) ;
			CString			GetFieldData	( UINT32 uiField ) ;

			CString			GetLatestError	() ;
			INT32			GetLatestErrorNo() ;
private:
	// 非公開メソッド
			void			InitMember_		() ;
			INT32			EncodeCharacter_( CString strCharSet ) ;

private:
	// 非公開メンバー
			T_MYSQL_INFO	m_tMySqlInfo ;

			MYSQL*			m_pMySql ;
			MYSQL_RES*		m_pMySqlRes ;
			MYSQL_FIELD*	m_pMySqlField ;
			MYSQL_ROW		m_tMySqlRow ;
};			

/****************************
*         関数 宣言		    *
****************************/
/****************************
*		　変数　宣言	    *
****************************/
/****************************
*   コンパイル環境定数	    *
****************************/

