Access数据库设计问题,急……

chc0613042124 2009-01-05 10:11:03
我VC++6.0中使用了Access数据库,可是编译时没有错误,但是在执行时却不能执行。请个路高手帮忙看看。不甚感激。
#import"C:\Program Files\Common Files\System\ado\msado15.dll"no_namespace \
rename("EOF","ado_EOF")rename("BOF","ado_BOF")

下面是使用原码:
void CVc_accessDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString strText;
CFileDialog file(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,\
"Access(*.mdb)|*.mdb| |",AfxGetMainWnd());
if(file.DoModal()==IDOK)
{
m_List.ResetContent();
strText=file.GetPathName();
m_Edit.SetWindowText(strText);
CString str_name,strTable;
str_name.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;\
Persist Security Info=False",strText);
try
{
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect=str_name;
m_pConnection->Open(strConnect,"","",adModeUnknown);
}//try
catch(_com_error e)
{
AfxMessageBox(e.Description());
}//catch
m_pRecordset=m_pConnection->OpenSchema(adSchemaTables);
while(!m_pRecordset->ado_EOF)
{
strTable=(char*)(_bstr_t)\
m_pRecordset->GetFields()->GetItem("TABLE_TYPE")->Value;
if(strTable=="TABLE")
{
m_List.AddString((char*)(_bstr_t)\
m_pRecordset->GetFields()->GetItem("TABLE_NAME")->Value);
}//if
m_pRecordset->MoveNext();
}//while

}//if

}

void CVc_accessDlg::OnDblclkList()
{
// TODO: Add your control notification handler code here
m_Grid.DeleteAllItems();
CString sql,str;
m_List.GetText(m_List.GetCurSel(),str);
sql.Format("select* from %s",str);
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open((_bstr_t)sql,m_pConnection.GetInterfacePtr(),\
adOpenDynamic,adLockOptimistic,adCmdText);
Fields* fields=NULL;
long countl,sizel;
BSTR bstr;
enum DataTypeEnum stype;
m_pRecordset->get_Fields(&fields);
countl=fields->Count;
for(long i=countl-1;i>=0;i--)
{
fields->Item[i]->get_Name(&bstr);
fields->Item[i]->get_Type(&stype);
fields->Item[i]->get_DefinedSize(&sizel);
m_Grid.InsertItem(0,0);
m_Grid.SetItemText(0,0,(CString)bstr);
m_Grid.SetItemText(0,1,(char*)(_bstr_t)(long)stype);
m_Grid.SetItemText(0,2,(char*)(_bstr_t)sizel);
}//for
fields->Release();

}
...全文
172 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chc0613042124 2009-01-09
  • 打赏
  • 举报
回复
谢谢了,我的问题解决了!
duangexin521 2009-01-08
  • 打赏
  • 举报
回复
把程序打包发我邮箱:duan.gexin@byd.com,我最近也在做access数据库编程。
我咋没有遇到你这样的问题。发给我 我给你检查一下。
rebeccadaniel 2009-01-07
  • 打赏
  • 举报
回复
最好先用断点看看在什么地方出现问题,这样解决起来才有针对性。
huliang66 2009-01-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhangheng51job 的回复:]
在连接数据库之前加上一句::CoInitialize(NULL); 用完后再加上一句::CoUninitialize();
[/Quote]

注册!
roadblossom 2009-01-06
  • 打赏
  • 举报
回复
up
oyljerry 2009-01-05
  • 打赏
  • 举报
回复
不能执行是什么,检查到底运行的位置,检查错误信息等
zhangheng51job 2009-01-05
  • 打赏
  • 举报
回复
在连接数据库之前加上一句::CoInitialize(NULL); 用完后再加上一句::CoUninitialize();

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧