我在CVIew的构造函数写的这些代码
try{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
hr1=m_pRecordset.CreateInstance(_uuidof(mylib::Recordset));//初始化Recordset指针
hr = m_pConnection->Open(_bstr_t(strConnection),"","",mylib::adModeUnknown);///连接数据库
}
catch(_com_error& e)
{CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
然后在CView类里始终用一个数据源,采用recordset来实现不同表的处理的切换,并每打开一个就对应一个关闭.有些地方也用到了EXEcute命令,不知道什么原因,我的程序执行时有时能通过,有时就报错,说IDispatch error ,非常的莫名其妙阿,请各位大虾,给些可能出错的原因
try{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
hr1=m_pRecordset.CreateInstance(_uuidof(mylib::Recordset));//初始化Recordset指针
hr = m_pConnection->Open(_bstr_t(strConnection),"","",mylib::adModeUnknown);///连接数据库
}
catch(_com_error& e)
{CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
然后在CView类里始终用一个数据源,采用recordset来实现不同表的处理的切换,并每打开一个就对应一个关闭.有些地方也用到了EXEcute命令,不知道什么原因,我的程序执行时有时能通过,有时就报错,说IDispatch error ,非常的莫名其妙阿,请各位大虾,给些可能出错的原因
{sql_.Format("ALTER TABLE ReportDataA ADD COLUMN %s CHAR(20) NULL",m_fdlg.m_sEle[j]);
sql=sql_;
m_pRecordset->Open(sql,(IDispatch*)m_pConnection,mylib::adOpenDynamic,mylib::adLockOptimistic,mylib::adCmdText);
}
出错代码如上.敬请诸位给予指点和帮助,不胜感激
{sql_.Format("ALTER TABLE ReportDataA ADD COLUMN %s CHAR(20) NULL",m_fdlg.m_sEle[j]);
sql=sql_;
m_pRecordset->Open(sql,(IDispatch*)m_pConnection,mylib::adOpenDynamic,mylib::adLockOptimistic,mylib::adCmdText);
}
出错代码如上.敬请诸位给予指点和帮助,不胜感激
{sql_.Format("ALTER TABLE ReportDataA ADD COLUMN %s CHAR(20) NULL",m_fdlg.m_sEle[j]);
sql=sql_;
m_pRecordset->Open(sql,(IDispatch*)m_pConnection,mylib::adOpenDynamic,mylib::adLockOptimistic,mylib::adCmdText);
}
出错代码如上.敬请诸位给予指点和帮助,不胜感激
改成:sql_ = "ALTER TABLE ReportDataA ADD COLUMN %s “
sql_ += m_fdlg.m_sEle[j])
sql_ += " CHAR(20) NULL";
看看?
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
直接用m_pConnection-〉Execute();就可以啦。
也试着用过execute
可还是报错,
会不会是access不支持语法啊?