用VC开发数据库遇到的问题,救命啊!!

bejesus 2001-07-20 08:52:52
以前没做过数据库,现在需要通过VC编程来对数据库进行操作,想用OLE DB,可是我用VC的数据访问ATL时,怎么感觉好象要为要访问的每个数据表都建两个类,这样岂不太烦了?我没有简单的方法用OLE DB来访问数据库。请介绍一下具体的步骤,最好有源码,谢谢!
...全文
142 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MyKylix 2001-07-20
  • 打赏
  • 举报
回复
半天可以看完的啊
wzaen 2001-07-20
  • 打赏
  • 举报
回复
@_@
bejesus 2001-07-20
  • 打赏
  • 举报
回复
大哥,就是因为急没时间看了,希望半天就能搞定!
davidprg 2001-07-20
  • 打赏
  • 举报
回复
我从来不用VC做数据库。
panda_w 2001-07-20
  • 打赏
  • 举报
回复
我的天,如果你有耐心的话,看看msdn上SDK Documentation
wuchuncai 2001-07-20
  • 打赏
  • 举报
回复
1.先在stdafx.h中加上
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")
2.在InitInstance()中加上
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
3. 建立连接

_RecordsetPtr m_pUserSet;
FieldsPtr m_pFieldsPtr;
FieldPtr m_pFieldPtr;
_ConnectionPtr m_pConnection;



CString strOpen;
strOpen.Format(_T("DBQ=%s;Driver={Microsoft Access Driver (*.mdb)};UID=guest;PWD='';"),"c:\\test.mdb");
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open((_bstr_t)strOpen,"","!@#$db10",-1);
m_pUserSet.CreateInstance(__uuidof(Recordset));

}
catch(...)
{
AfxMessageBox("数据库初始化错误,程序将关闭!");
exit(6);//return FALSE;
}

4.使用
CString sql = "select * from Account ";

try
{
m_pUserSet->Open((_variant_t)sql,
m_pConnection.GetInterfacePtr(),
adOpenForwardOnly,
adLockReadOnly,
adCmdText);
while(!m_pUserSet->adoEOF)
{
//add program do sth
m_pUserSet->MoveNext();
}
m_pUserSet->Close();

}//try
catch(_com_error *e)
{
}

catch(...)
{
}

masterz 2001-07-20
  • 打赏
  • 举报
回复
用ado比较容易
bejesus 2001-07-20
  • 打赏
  • 举报
回复
我对OLE DB知道一点,但我感觉用ATL的话,好象要为要访问的每个数据表都建两个类,是这样吗?

4,011

社区成员

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

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