mysql을 클래스로 만들어서 다이얼로그마다 사용하려면 어떻게 해야 하나요?
율하
class MYDB
{
public:
MYSQL mysql;
MYSQL_RES *m_Res;
MYSQL_ROW row;
MYDB();
~MYDB();
void DBconn();
void DBquery(const char* str);
};
void MYDB::DBconn()
{
mysql_init(&mysql);
//서버에 연결
if (!mysql_real_connect(&mysql, SERVER_HOST, SERVER_ID, SERVER_PW, SERVER_DB, 3306, (char*)NULL, 0))
{
AfxMessageBox((CString)mysql_error(&mysql), MB_OK);
return;
}
mysql_set_character_set(&mysql, euckr);
}
void MYDB::DBquery(const char* str)
{
if(mysql_query(&mysql, str))
{ // 쿼리 요청
return;
}
다음과 같이 MYDB라고 mysql 클래스를 하나 만들었는데 이걸 사용하는 방법을 모르겠습니다.
다이얼로그 생성자에 MYDB DB;라고 써도 안되고OnInitDialog()에서 MYDB DB; 쓰면 에러나고..
mysql 클래스를 하나 만들어서 다이얼로그마다 사용하고 싶은데 어디서 객체를 만들어서 어떻게 사용해야 하는지 방법 좀 알려주시면 감사하겠습니다..
-
비예
종료 처리 없구요. db같은거 사용하실때 연결하고 종료 하고 연결 하고 종료 하고 하실꺼 아니면 맴버변수로 지정해서 쓰심이 더좋을것 같네요. 마지막으로 심수다님 말씀대로 전역또는 최상위 클래스가 일괄적으로 관리 하는 시스템이 더 좋지 않을까요?
-
난길
제 생각엔 다이얼로그와 DB연결장치는 큰 연관관계가 없는거 같으네요
DB연결장치를 전역으로 만드세요
그리고 같은 DB주소로 n개의 다이얼로그를 통해서 n번 연결할 필요는 없을거 같으네요
전역에서 초기에 한번 연결을 하고 각 다이얼로그는 쿼리만 날리도록 하는게 좋을거 같으네요 -
쥬디시어스
다이얼로그마다 MYDB 객체를 따로 생성해서 쓸거면 그냥 다이얼로그에 상속하는 것도...