void CMy1234Dlg::OnButton1()
{
m_list.ResetContent();
int i=0;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
try{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb"," "," ",0);
m_pRecordset->Open("SELECT * FROM DemoTable",(IDispatch *)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
i=i+1;
_variant_t theValue = m_pRecordset->GetCollect("Name");
if(theValue.vt != VT_NULL)
m_list.AddString((char *)_bstr_t(theValue));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->Close();
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage()); }
char str[32];
sprintf(str,"table have %d record",i);
AfxMessageBox(str);
m_pRecordset = NULL;
m_pConnection = NULL; }
这是ADO连接ACCESS数据库的部分程序,
为什么运行之后显示:
IDispatch error #3149
table have 0 record
表也没有显示在出来,是不是没连接上,我要怎么改一下
哪位热心人帮忙看一下....
{
m_list.ResetContent();
int i=0;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
try{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb"," "," ",0);
m_pRecordset->Open("SELECT * FROM DemoTable",(IDispatch *)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
i=i+1;
_variant_t theValue = m_pRecordset->GetCollect("Name");
if(theValue.vt != VT_NULL)
m_list.AddString((char *)_bstr_t(theValue));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->Close();
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage()); }
char str[32];
sprintf(str,"table have %d record",i);
AfxMessageBox(str);
m_pRecordset = NULL;
m_pConnection = NULL; }
这是ADO连接ACCESS数据库的部分程序,
为什么运行之后显示:
IDispatch error #3149
table have 0 record
表也没有显示在出来,是不是没连接上,我要怎么改一下
哪位热心人帮忙看一下....
解决方案 »
- DLL释放
- 模态对话框調用Domodal()後不能正常弹出,有时要按键盘上的Alt键才能正常弹出,怎么解决这个问题?
- 求教高手!在一个Tab Control上,如何实现一个类似资源管理器的功能???
- 100分问手机充值卡密码生成的原理
- 为何调用dll时,不能返回正常的char*?有源码,大家帮忙看看。
- sos:有使用tcp/ip传送数据的编程经验的请进。
- 怪事:delete [] sss;会报: DAMAGE:after Normal block(#84) at 0x00345350
- MIDL出错求救
- 如何成为vc高手。
- 关于是视频采集这没老是死机?
- 关于DLL2LIB的问题
- C++中"*"有几种作用啊
自已ding
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb"," "," ",0);
m_pRecordset->Open("SELECT * FROM DemoTable",(IDispatch *)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
i=i+1;
_variant_t theValue = m_pRecordset->GetCollect("Name");
if(theValue.vt != VT_NULL)
m_list.AddString((char *)_bstr_t(theValue));
m_pRecordset->MoveNext();
}
就这部分有错,怎么改啊...
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
m_pRecordset->Open("SELECT * FROM DemoTable",_variant((IDispatch *) m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb"," "," ",0)后
再执行: catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage()); }时产生错误...
楼上的几位兄弟哥哥帮帮我,谢谢!