前几天大侠们告诉了我第一个问题,通过下面的方法可以请求到ADO接口。那么如何调用相应的方法来操作数据库?就是如何获得具体的一个接口,比如说_ConnectionPtr等等。
IDispatch* pDispatch=NULL;
CLSID clsid;
CoInitialize(0);
HRESULT hr = ::CLSIDFromProgID(L"ADODB.Connection", &clsid);
if(FAILED(hr)){return;}CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IDispatch, (void **)
&pDispatch);
if(FAILED(hr)){return;}
IDispatch* pDispatch=NULL;
CLSID clsid;
CoInitialize(0);
HRESULT hr = ::CLSIDFromProgID(L"ADODB.Connection", &clsid);
if(FAILED(hr)){return;}CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IDispatch, (void **)
&pDispatch);
if(FAILED(hr)){return;}
解决方案 »
- Create创建控件成功后不显示。
- 两个独立的应用程序,每个程序都对一张表编辑,一个程序编辑表后在切换到另一个程序时会实时得到编辑的数据。
- 隐藏显示窗口
- 请教:VC用StretchBlt将一张图片缩小后,然后DIVX压缩,会有明显的锯齿(或马赛克)
- 请教MDI的问题,高手请进100分,在线等,解决就结帖
- 怎样把静态标签设为透明?
- 反弹式木马??
- 简单问题,关于标准另存为对话框
- 如何调用API函数关闭机器?
- 不是我不想看书, 实在是老板催着要交货了, 急啊!
- CToolBar能不能动态的增加或者删除BUTTON,怎么做
- AppWizard生成的MDI,我想在一个新的线程中AfxGetApp()->m_pDocManager->OnFileNew()创建新窗口,出错!
_RecordsetPtr m_prs;
_ConnectionPtr m_pConnection;
HRESULT hr = S_OK;
try
{
hr = m_prs.CreateInstance(__uuidof(Recordset));
if(FAILED(hr))
{
AfxMessageBox("记录集对象建立失败!",MB_ICONINFORMATION);
return ;
}
BeginWaitCursor();
m_strSQL = "select * from tableA";
hr = m_prs->Open(_bstr_t(m_strSQL),(IDispatch*)m_pConnection,adOpenStatic ,adLockReadOnly,adCmdText);
if(FAILED(hr))
{
AfxMessageBox("数据库查询失败!",MB_ICONINFORMATION);
return ;
}
EndWaitCursor();
}
catch(_com_error e) ///捕捉异常
{
CString errormessage;
errormessage.Format("错误信息:%s",(char*)(e.Description()));
AfxMessageBox(errormessage, MB_ICONINFORMATION);///显示错误信息
return;
}
catch (CException err)
{
err.ReportError();
return;
}
catch(...)
{
AfxMessageBox("未知错误!",MB_ICONINFORMATION);
return;
}
编译的时候提示_RecordsetPtr没有定义?如何处理