HRESULT hr;
hr = pIDBInitialize->QueryInterface(IID_IDBCreateSession,(void * *) &pIDBCreateSession);
if ( S_OK == hr)
{
hr = pIDBCreateSession->CreateSession(NULL,IID_IDBCreateCommand,(IUnknown * *) &pIDBCreateCommand);//到这一步出错提示“jet engine 应用启动失败: 工作组信息丢失或被其他应用程序以独占方式打开”
....
         }

解决方案 »

  1.   

    HRESULT   myCreateSession
       (
       IUnknown *           pUnkDataSource,
       IUnknown **          ppUnkSession
       )
    {
       HRESULT              hr;
       IDBCreateSession *   pIDBCreateSession      = NULL;
       
       //Create a session object from a data source object
       // See IDBCreateSession and IOpenRowset
       XCHECK_HR(hr = pUnkDataSource->QueryInterface(
                IID_IDBCreateSession, (void**)&pIDBCreateSession));
       XCHECK_HR(hr = pIDBCreateSession->CreateSession(
                NULL,                                   // pUnkOuter
                IID_IOpenRowset,                        // riid
                ppUnkSession                            // ppSession
                ));CLEANUP:
       if( pIDBCreateSession )
          pIDBCreateSession->Release();
       return hr;
    }
      

  2.   

    注意:// Init OLE and set up the DLLs.
        CoInitialize(NULL);
      

  3.   

    to gracezhu(eutom)
       Firstly,thank you for your reply
       你的答复使我突然想到了我的数据库供给程序并不支持COMMAND对象
       只能通过IOpenRowset来访问数据源
      

  4.   

    TO gracezhu(eutom)
       可还是创建SESSION对象不成,并不是不支持IID_IDBCreateCommand接口
      

  5.   


    错误提示是:
    Source: Microsoft JET Database Engine 
      Description: 不能启动应用程序。工作组信息文件丢失,或是已经被其它用户以独占方式打开。我用的是Microsoft Jet oledb  Provider 4.0  访问ACCESS数据库
      

  6.   

    是不是Microsoft JET Database Engine 损坏,可以重新装过试