HRESULT hr;
hr = pIDBInitialize->QueryInterface(IID_IDBCreateSession,(void * *) &pIDBCreateSession);
if ( S_OK == hr)
{
hr = pIDBCreateSession->CreateSession(NULL,IID_IDBCreateCommand,(IUnknown * *) &pIDBCreateCommand);//到这一步出错提示“jet engine 应用启动失败: 工作组信息丢失或被其他应用程序以独占方式打开”
....
}
hr = pIDBInitialize->QueryInterface(IID_IDBCreateSession,(void * *) &pIDBCreateSession);
if ( S_OK == hr)
{
hr = pIDBCreateSession->CreateSession(NULL,IID_IDBCreateCommand,(IUnknown * *) &pIDBCreateCommand);//到这一步出错提示“jet engine 应用启动失败: 工作组信息丢失或被其他应用程序以独占方式打开”
....
}
(
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;
}
CoInitialize(NULL);
Firstly,thank you for your reply
你的答复使我突然想到了我的数据库供给程序并不支持COMMAND对象
只能通过IOpenRowset来访问数据源
可还是创建SESSION对象不成,并不是不支持IID_IDBCreateCommand接口
错误提示是:
Source: Microsoft JET Database Engine
Description: 不能启动应用程序。工作组信息文件丢失,或是已经被其它用户以独占方式打开。我用的是Microsoft Jet oledb Provider 4.0 访问ACCESS数据库