mssql에 접근해서 테이블 값을 출력하는 프로그램짜는중 막히는곳이 있어서 질문드립니다!
mssql2008 사용중입니다..비쥬얼스튜디오 2008 사용중이구요
클래스로 atl 소비자 추가 해줘서 두개의 테이블을 추가 해줘서 헤더파일 두개 생겼습니다..
이 두개의 헤더파일을 하나의 클래스로 묶어서 관리하는 c++클래스를 하나 더 만들었구요
두개의 함수를 만들었는데 두개다 각각의 테이블에 접근해서 아이디나 패스워드 가져오는 함수입니다...
두개의 함수중 아래함수는 정상동작해서 아이디랑 패스워드를 가져오는데
위에 함수는 디버깅해보면서 따라가보니 "" <-- 값이 이렇게 저장되어있다고 나오네여..
테이블은 제가 직접만들어서 값까지 전부 넣어준 상태인데 "" <- 요렇게 나옵니다..
두개가 전부 안되면 이상하려니 하겠는데... 똑같은 코드인데 하나되고 하나 안되니 답답합니다..
어느부분을 좀더 봐야 할까요???
BOOL CDBmanager::InsertSocket(LONG index, SOCKET socket)
{
CoInitialize(0);
HRESULT hr = m_dbMem.OpenAll();
m_dbMem.MoveFirst();
do
{
wcout << m_dbMem.m_PW << endl;
} while (m_dbMem.MoveNext() != DB_S_ENDOFROWSET);
m_dbMem.RunSQL(_T("SELECT * FROM MEMDB"));
m_dbMem.CloseAll();
CoUninitialize();
return 0;
}
BOOL CDBmanager::SearchMEM(int dkdk)
{
CoInitialize(0);
HRESULT hr = m_meminfo.OpenAll();
m_meminfo.MoveFirst();
do
{
wcout << m_meminfo.m_ID << "\t\t" << m_meminfo.m_PW << endl;
} while (m_meminfo.MoveNext() != DB_S_ENDOFROWSET);
m_meminfo.RunSQL(_T("SELECT * FROM MemInfo"));
m_meminfo.CloseAll();
CoUninitialize();
return 0;
}
CoInitialize?
ATL을 활용한 DB 처리는 해본 적이 없습니다만... 아마도 m_dbMem과 m_meminfo은 DB 처리를 위해서 자동생성된 class의 객체일텐데... 생성시점 전에 CoInitialize 가 호출되지 않아도 되는 걸까요?
C, C++ 세계에서 동일한 두개가 하나는 되고, 하나는 되지 않고 있다면 정확히 말해 두개 다 잘못되었을 가능성이 꽤 됩니다. 무엇보다도 programmer가 두개 다 정확히 이해하지 못하고 있을 가능성이 높습니다. C, C++ 는 시크하니까 잘 이해해줘야 합니다.
댓글 달기