Error using MFC DAO to connect to an Access database under windows xp

Hi experts,

I'm using visual c++ to develop an application that connects to an Access database, it's working ok with Windows 98, NT and 2000, but we were testing with PCs with Windows XP and it can't connect to the database. The application generates an Exception and only is possible to read e->m_scode.

I tried installing:

Jet 4.0 Service Pack 8 (SP8) para Windows XP  and
Microsoft Data Access Components (MDAC) 2.8

The application launches the sampe exception.

The code is simple:

----------------------------------------------------------------------------------------------------
....
cadaux = ((CCtseditApp*)AfxGetApp())->m_CurDir + _T("\\ctsedit.mdb");
cadpass = ";PWD=";
cadpass = cadpass + PASSWORD;

try{      m_Database.Open(LPCTSTR(cadaux), FALSE, FALSE, LPCTSTR(cadpass));
      }

catch( CDaoException* e )
{
          DisplayDaoException(e);
                 e->Delete();

      }
....

void DisplayDaoException(CDaoException* e)
{
 CString strMsg;
 if (e->m_pErrorInfo!=NULL)
 {
  strMsg.Format(
   _T("%s   (%d)\n\n")
   _T("Would you like to see help?"),
   (LPCTSTR)e->m_pErrorInfo->m_strDescription,
   e->m_pErrorInfo->m_lErrorCode);

  if (AfxMessageBox(strMsg, MB_YESNO) == IDYES)
  {
   WinHelp(GetDesktopWindow(),
     e->m_pErrorInfo->m_strHelpFile,
     HELP_CONTEXT,
     e->m_pErrorInfo->m_lHelpContext);
  }
 }
 else
 {
  strMsg.Format(
   _T("ERROR:CDaoException\n\n")
   _T("SCODE_CODE      =%d\n")
   _T("SCODE_FACILITY  =%d\n")
   _T("SCODE_SEVERITY  =%d\n")
   _T("ResultFromScode =%d\n"),
   SCODE_CODE      (e->m_scode),
   SCODE_FACILITY  (e->m_scode),
   SCODE_SEVERITY  (e->m_scode),
   ResultFromScode (e->m_scode));
  AfxMessageBox(strMsg);
 }
}

----------------------------------------------------------------------------------------------------
DisplayDaoException displays:

SCODE_CODE = 3633
SCODE_FACILITY=10
SCODE_SEVERITY=1
ResultFromScode= -2146824655

----------------------------------------------------------------------------------------------------

cadaux and  cadpass are right, using errlook.exe with -2146824655 the error means "Class not Registered".

Any of you had this problem? how did you fix it? we don't think we'll have to change our code but probably we'll have to include some configuration we don't have ide..


Thanks in advance!
cvillacrAsked:
Who is Participating?
 
DabasCommented:
Hi cvillacr:
Try installing an earlier version of MDAC (2.5?)
M$oft stopped supporting DAO after MDAC 2.6 or 2.7

Dabas
0
 
cvillacrAuthor Commented:
I found myself another solution:

It was to copy msjet35.dll in the application folder. It seems ms jet is not supported in xp.

Carlos V.
0
 
DabasCommented:
Carlos:

The earlier MDAC would have installed msjet35.dll for you, as it was supported at the time.
Did you try?

Dabas
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.