你是不是用Wizard生成的OLE DB
如果不是你瞧下头文件 包含
afxdb.h了吗
如果不是你瞧下头文件 包含
afxdb.h了吗
解决方案 »
- 获取文件名的效率问题请教
- 调用DLL的保护措施
- vc6下用gdiplus(gdi+)用Image,无论从IStream还是从文件中输入,都失败
- 关于获得剪贴板消息的问题,100分送上。
- 天啊,刚刚删除msdn,想重装,现在急用,找不到InternetSetOption在哪个头文件里,请帮我查查
- 求助,我的程序debug版本很好,release版本在98下一点问题都没有,在2000下运行就出现关机的画面。
- 给一段打针bmp文件的代码。。。。。给100
- 请教一个WIN 32 DLL编程问题
- 关于句柄 ,谁不懂就来看看
- 小弟在工具条上加了一个按钮,可是它总是disabled,甚为困惑,望诸位圣虾指教,小弟愿20相送。
- 需要ActiveX控件的编程资料!!!!SOS
- 扩展存储过程(Extended stored procedure)
你报错是不是“Record set failed to open”是的话给你篇帖子也许有用
http://www.csdn.net/expert/topic/426/426201.xml?temp=.0220148
而且程序在Compile和build时都没有Error
出现
谢谢你
{
HRESULT hr=S_OK;
IUnknown *pUnkDataSource=0;
IDataInitialize *pDataInitialize=0;
IDBInitialize *pDBInitialize=0;
IDBProperties *pDBProperties=0;
IDBCreateSession *pDBSession=0;
WCHAR wszDataSource[200];
WCHAR wsztmp[100],wsztmp1[100];
memset(wszDataSource,0,sizeof(wszDataSource));
memset(wsztmp,0,sizeof(wsztmp));
memset(wsztmp1,0,sizeof(wsztmp1));
int i=0;
if(lpszServer==NULL || strlen(lpszServer)==0)
{
strcpy(m_oleErrmsg,"未指定数据源.");
return false;
}
wcscat(wszDataSource,L"Provider=SQLOLEDB;"); mbstowcs(wsztmp,lpszServer,sizeof(wsztmp));
swprintf(wsztmp1,L"Data Source=%s;",wsztmp);
wcscat(wszDataSource,wsztmp1); mbstowcs(wsztmp,lpszUser,sizeof(wsztmp));
swprintf(wsztmp1,L"User ID=%s;",wsztmp);
wcscat(wszDataSource,wsztmp1);
mbstowcs(wsztmp,lpszPwd,sizeof(wsztmp));
swprintf(wsztmp1,L"Password=%s;",wsztmp);
wcscat(wszDataSource,wsztmp1);
hr=CoCreateInstance(CLSID_MSDAINITIALIZE,0,CLSCTX_INPROC_SERVER,IID_IDataInitialize,(PPVOID)&pDataInitialize);
if(pDataInitialize==0)
{
sprintf(m_oleErrmsg,"获取IDataInitialize接口失败.\n%s",m_wblErrmsg.GetLastErrmsg());
goto SAFE_EXIT;
}
hr=pDataInitialize->GetDataSource(0,CLSCTX_INPROC_SERVER,wszDataSource,IID_IUnknown,&pUnkDataSource);
if(pUnkDataSource==0)
{
sprintf(m_oleErrmsg,"获取新的数据源接口失败.\n%s",m_wblErrmsg.GetLastErrmsg());
goto SAFE_EXIT;
}
pDataInitialize->Release();
pDataInitialize=0;
hr=pUnkDataSource->QueryInterface(IID_IDBInitialize,(PPVOID)&pDBInitialize);
if(FAILED(hr))
{
sprintf(m_oleErrmsg,"获取IDBInitialize接口失败.\n%s",m_wblErrmsg.GetLastErrmsg());
goto SAFE_EXIT;
}
hr=pDBInitialize->Initialize();
if(FAILED(hr))
{
sprintf(m_oleErrmsg,"连接数据库服务器[ \\\\ %s ]失败.\n%s",lpszServer,m_wblErrmsg.GetLastErrmsg());
goto SAFE_EXIT;
}
hr=pDBInitialize->QueryInterface(IID_IDBCreateSession,(PPVOID)&pDBSession);
if(FAILED(hr))
{
sprintf(m_oleErrmsg,"初始化数据库会话接口失败.\n%s",m_wblErrmsg.GetLastErrmsg());
goto SAFE_EXIT;
}
hr=pDBSession->CreateSession(0,IID_IDBCreateCommand,(IUnknown **)&m_pDBCommand);
if(FAILED(hr))
{
sprintf(m_oleErrmsg,"获取IDBCreateCommand接口失败.\n%s",m_wblErrmsg.GetLastErrmsg());
goto SAFE_EXIT;
}
SAFE_EXIT:
if(pUnkDataSource!=0)
{
pUnkDataSource->Release();
pUnkDataSource=0;
}
if(pDBSession!=0)
{
pDBSession->Release();
pDBSession=0;
}
if(pDBProperties!=0)
{
pDBProperties->Release();
pDBProperties=0;
}
if(pDBInitialize!=0)
{
pDBInitialize->Release();
pDBInitialize=0;
}
return SUCCEEDED(hr);
}