| re: Accessing unmounted priv1.edb file using ESE API (Exchange Server 2003)
Hi Anup,
I am trying to read a edb file using ESE APIs and am facing the problem of not
being able to read any of the tables, here is my code, please tell me where i
have gone wrong.
/************************************************** ***********************************/
// One possible error-handling strategy is to jump to an error-handling
// label whenever an ESENT call fails.
#define Call(func) { \
err = (func); \
if(err < JET_errSuccess) { \
goto HandleError; \
} \
}\
{
JET_ERR err = JET_bitNil;
JET_INSTANCE instance = JET_bitNil;
JET_SESID sesid = JET_bitNil;
JET_DBID dbid = JET_bitNil;
JET_TABLEID tableid = {1};
JET_COLUMNDEF columndef = {0};
JET_COLUMNID columnid = {0};
Call(JetCreateInstance2(&instance, "instance",NULL,JET_bitNil));
Call(JetInit(&instance));
Call(JetBeginSession(instance, &sesid, 0, 0));
Call(JetAttachDatabase2(sesid,"tmp.edb",NULL,JET_b itDbReadOnly ));
char buffer[1024];
Call(JetGetDatabaseInfo(sesid,dbid,buffer,sizeof(b uffer),JET_DbInfoFilename));
MessageBoxA(NULL,buffer,NULL,MB_OK);
memset(buffer,NULL,sizeof(buffer));
Call(JetGetTableInfo(sesid,tableid,buffer,sizeof(b uffer),JET_TblInfoName));
JetDetachDatabase(sesid,"tmp.edb");
JetEndSession(sesid, 0);
JetTerm(instance);
return 0;
HandleError:
if(err == JET_errInvalidDatabase)
{
MessageBox(NULL,_T("Invalid Database"),NULL,MB_OK);
}
else
{
printf("ESENT error %d\n", err);
}
return 1;
}
/************************************************** ***********************************/
Regards
Subramanya M.S
|