刚开始学习C++通过ADO连接数据库,参考了网上的资料,写了如下代码,
编译可以通过,运行时每次出现的是“error 3”,请高手指点一下!
谢谢!
#include <iostream.h>
#include <stdio.h>
#include <ICRSINT.H>
#import "D:\VC\c_ado\Debug\MSADO15.DLL" no_namespace rename("EOF", "adoEOF")
void main()
{
CoInitialize(NULL);
//AfxOleInit();
_ConnectionPtr pMyConnect=NULL;
HRESULT hr=pMyConnect.CreateInstance(__uuidof(Connection));
if(FAILED(hr))
{
cout<<"error 1!"<<endl;
return;
}
_bstr_t strConnect="Driver={sql server};server=MICROSOF-37ED1B;uid=;pwd=;database=stockShouPJ";
//connecting to the database server now:
try{pMyConnect->Open(strConnect,"","",NULL);}
catch (_com_error &e)
{
cout<<"error 2!"<<endl;
//::MessageBox(NULL,e.Description(),"警告",MB_OK │ MB_ICONWARNING);
} _RecordsetPtr m_pRecordset;
if(!FAILED(m_pRecordset.CreateInstance( __uuidof( Recordset ))))
{
cout<<"error 3!"<<endl; //运行时在此处出现错误!
//m_pDoc->m_initialized=FALSE;
return;
} try{
m_pRecordset->Open(_variant_t("mytable"),
_variant_t((IDispatch *)pMyConnect,true), adOpenKeyset,
adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
cout<<"error 4!"<<endl;
//::MessageBox(NULL,"无法打开mytable表。","提示",MB_OK │ MB_ICONWARNING);
}
}
编译可以通过,运行时每次出现的是“error 3”,请高手指点一下!
谢谢!
#include <iostream.h>
#include <stdio.h>
#include <ICRSINT.H>
#import "D:\VC\c_ado\Debug\MSADO15.DLL" no_namespace rename("EOF", "adoEOF")
void main()
{
CoInitialize(NULL);
//AfxOleInit();
_ConnectionPtr pMyConnect=NULL;
HRESULT hr=pMyConnect.CreateInstance(__uuidof(Connection));
if(FAILED(hr))
{
cout<<"error 1!"<<endl;
return;
}
_bstr_t strConnect="Driver={sql server};server=MICROSOF-37ED1B;uid=;pwd=;database=stockShouPJ";
//connecting to the database server now:
try{pMyConnect->Open(strConnect,"","",NULL);}
catch (_com_error &e)
{
cout<<"error 2!"<<endl;
//::MessageBox(NULL,e.Description(),"警告",MB_OK │ MB_ICONWARNING);
} _RecordsetPtr m_pRecordset;
if(!FAILED(m_pRecordset.CreateInstance( __uuidof( Recordset ))))
{
cout<<"error 3!"<<endl; //运行时在此处出现错误!
//m_pDoc->m_initialized=FALSE;
return;
} try{
m_pRecordset->Open(_variant_t("mytable"),
_variant_t((IDispatch *)pMyConnect,true), adOpenKeyset,
adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
cout<<"error 4!"<<endl;
//::MessageBox(NULL,"无法打开mytable表。","提示",MB_OK │ MB_ICONWARNING);
}
}
解决方案 »
- mysql.h 开发环境下如何遍历所有记录显示在clistcontrol中
- 如果局域网里设置了代理器,有的代理上网需要登录的,有的设置不要的,怎么得到需要不需要登录呢?
- 调用DLL时出错,小毛病,来看看吧!
- 用DAO访问Access数据库,为什么在没有安装VC的机子上就会出现“无法对DAO/jet db引擎进行初始化。
- +++++对话框的小问题+++++
- 如何使用VC判断带宽(极难)
- 研究视频、音频的朋友的好去处: http://www.divx-digest.com/ mp4、avi、等等开放开发
- VC+ado问题
- 为什么不能在CListView中显示CRecordSet的内容
- 我想做一个网络合作软件
- 如何使按钮不可用
- 关于贝塞尔曲线连接问题
这个是否被你取反了
if(FAILED(m_pRecordset.CreateInstance( __uuidof( Recordset ))))
????