#define SQL_CREATE "CREATE"
#define SQL_DROP "DROP"
#define SQL_TABLE "TABLE"
#define SQL_DATABASE "DATABASE"
////#define SQL_INSERT_RECORD "INSERT INTO playerinfo VALUES(NULL , %s, %d);" //"
#define SQL_INSERT "INSERT"
#define SQL_INTO "INTO"
#define SQL_VALUES "VALUES"
//#define SQL_SELECT_RECORD "SELECT * FROM playerinfo"
#define SQL_SELECT "SELECT"
#define SQL_FROM "FROM"
#define SQL_WHERE "WHERE"
//---------Table----------------------------------
//------------------------------------------------
//테이블리스트를가져온다
BOOL CMySQLDB::GetTableList(MYSQL_RES* &Refresul)
{
MYSQL_RES* result =NULL;
result= mysql_list_tables(m_DBInfo.m_MySQL_CONNECT,"%");
Refresul=result;
if(result)
{
while(result->data->data!=NULL){
printf("있다%s\n",*(result->data->data->data));
result->data->data =result->data->data->next;
}
return TRUE;
}
return FALSE;
}
//테이블생성
BOOL CMySQLDB::CreateTable(const char* TableName,const char* TableStructure)
{
if(!TableName || !TableStructure )
return FALSE;
memset(m_CommandString,0, _countof(m_CommandString));
sprintf_s(m_CommandString,"%s %s %s(%s); ",SQL_CREATE,SQL_TABLE, TableName,TableStructure);
m_dQuery_stat=mysql_query(m_DBInfo.m_MySQL_CONNECT,m_CommandString);
if (m_dQuery_stat != 0)
{
cout<<"여기?"<<endl;
//fprintf(stderr, "Mysql query error : %s", mysql_error(&conn));
return FALSE;
}
cout<<m_CommandString<<endl;
return TRUE;
}
//테이블삭제
BOOL CMySQLDB::DelTable(const char* Tablename)
{
if(!Tablename)
return FALSE;
memset(m_CommandString,0, _countof(m_CommandString));
sprintf_s(m_CommandString,"%s %s %s",SQL_DROP,SQL_TABLE, Tablename);
cout<<m_CommandString<<endl;
m_dQuery_stat=mysql_query(m_DBInfo.m_MySQL_CONNECT,m_CommandString);
if (m_dQuery_stat != 0)
{
return FALSE;
}
/*
query_stat=mysql_query(connection,SQL_DROP_TABLE);
if (query_stat != 0)
{
fprintf(stderr, "Mysql query error : %s", mysql_error(&conn));
}
*/
return TRUE;
}
//---------Record----------------------------------
//------------------------------------------------
//레코드삽입.
BOOL CMySQLDB::INSERTTableValue(const char* TableName,const char *valse , ... )
{
if(!TableName || !valse )
return FALSE;
//레코드에입력값들을스크림으로만든다.
char ValueString[512];
va_list argptr;
va_start( argptr, valse );
vsprintf_s(ValueString, valse, argptr );
va_end( argptr );
memset(m_CommandString,0, _countof(m_CommandString));
sprintf_s(m_CommandString,"%s %s %s %s(%s);",SQL_INSERT,SQL_INTO, TableName,SQL_VALUES,ValueString);
m_dQuery_stat = mysql_query(m_DBInfo.m_MySQL_CONNECT,m_CommandString);
if (m_dQuery_stat != 0)
{
cout<<"여기"<<endl;
// fprintf(stderr, "Mysql query error : %s", mysql_error(&conn));
return FALSE;
}
printf("%s\n",m_CommandString);
return TRUE;
}
//레코드선택 (SELECT valse FROM TableName WHERE condition) ex) "SELECT * FROM playerinfo"
BOOL CMySQLDB::SELECT_FROM_Table(const char* TableName,const char* valse, const char* condition,...)
{
if(!TableName)
return FALSE;
memset(m_CommandString,0, _countof(m_CommandString));
//정렬할변수형들
if(valse == NULL)
{
sprintf_s(m_CommandString,"%s %c %s %s",SQL_SELECT,'*',SQL_FROM,TableName);
}else
{
sprintf_s(m_CommandString,"%s %s %s %s",SQL_SELECT,valse,SQL_FROM,TableName);
}
//찾을조건
if(condition != NULL)
{
char Con[255];
va_list argptr;
va_start( argptr, condition );
vsprintf_s(Con, condition, argptr );
va_end( argptr );
sprintf_s(m_CommandString,"%s %s",m_CommandString, SQL_WHERE ,Con);
}
m_dQuery_stat=mysql_query(m_DBInfo.m_MySQL_CONNECT,m_CommandString);
if (m_dQuery_stat != 0)
{
return FALSE;
}
cout<<m_CommandString<<endl;
return TRUE;
}
//찾은테이블결과값을가져온다..
//레코드보기..sql_result //bool freeReult변수는DB에서Select해서찾은결과값을지울것인지를결정한다.
BOOL CMySQLDB::ViewTableresult(MYSQL_RES* &RefSql_result, bool freeReult)
{
MYSQL_RES *sql_result;
MYSQL_ROW sql_row;
sql_result=mysql_store_result(m_DBInfo.m_MySQL_CONNECT);
RefSql_result=sql_result;
if(freeReult){
while((sql_row=mysql_fetch_row(sql_result))!=NULL)
{
//fiele_count 값이열(col)의(테이블에선언된변수갯수) 이다.
for(int index =0; index<sql_result->field_count ; index++)
{
printf("%s ",sql_row[index]);
}
printf("\n");
}
//mysql_free_result(sql_result);
}
return TRUE;
}
댓글 없음:
댓글 쓰기