基于对话框--的MFC代码使用ODBC、ADO、DAO访问数据库?

外号叫大米 2011-01-18 02:50:27
在VC6.0中MFC创建了一个基于对话框的代码!
现在想用这代码连接数据库!ODBC、ADO、DAO这三种那一种比较好?
如果使用ODBC,该怎么操作?
分数不多了!希望高手能给点建议!
谢谢!
...全文
243 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxhx 2011-03-29
  • 打赏
  • 举报
回复
ODBC效率最低,用ADO吧,具体操作看置顶帖子:
http://blog.csdn.net/zyq5945/archive/2010/04/29/5541280.aspx


anbam 2011-03-29
  • 打赏
  • 举报
回复
ADO是实用标准
hubo86915531 2011-03-24
  • 打赏
  • 举报
回复
上面的#include "Management.h"
是你工程名字的头文件
hubo86915531 2011-03-24
  • 打赏
  • 举报
回复
ADO比较好!
创建一个类!叫 ADOConn
ADOConn.cpp
#include "stdafx.h"
#include "Management.h"
#include "ADOConn.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ADOConn::ADOConn()
{

}

ADOConn::~ADOConn()
{

}



void ADOConn::OnInitADOConn()
{
::CoInitialize(NULL);
try
{
m_pCon.CreateInstance("ADODB.Connection");
m_pCon->ConnectionTimeout=3;

m_pCon->Open("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=lyl;Data Source=(local)","","",NULL);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
void ADOConn::ExitConn()
{
if(m_pRs!=NULL)
m_pRs->Close();
m_pRs->Close();
::CoUninitialize();
}
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if(m_pCon==NULL)
OnInitADOConn();
m_pRs.CreateInstance("ADODB.Recordset");
m_pRs->Open(bstrSQL,m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
return m_pRs;
}

BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if(m_pCon==NULL)
OnInitADOConn();
m_pCon->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
ADOConn.h
// ADOConn.h: interface for the ADOConn class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ADOCONN_H__2019F5C5_4C78_4579_AB77_543AE8C2A2FF__INCLUDED_)
#define AFX_ADOCONN_H__2019F5C5_4C78_4579_AB77_543AE8C2A2FF__INCLUDED_
#import "C:\Program Files\Common Files\System\ado\msado15.dll"no_namespace rename("EOF","adoEOF")
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class ADOConn
{
public:
BOOL ExecuteSQL(_bstr_t bstrSQL);
_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
void ExitConn();
void OnInitADOConn();
_ConnectionPtr m_pCon;
_RecordsetPtr m_pRs;
// _RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
ADOConn();
virtual ~ADOConn();
};

#endif // !defined(AFX_ADOCONN_H__2019F5C5_4C78_4579_AB77_543AE8C2A2FF__INCLUDED_)

saiyaman5 2011-01-25
  • 打赏
  • 举报
回复
果断ado
aslprince 2011-01-25
  • 打赏
  • 举报
回复
现在貌似用ADO比较多
draculamx 2011-01-18
  • 打赏
  • 举报
回复
DAO,微软明确表示,已经淘汰,不要再碰了。。

ODBC,缺点多多,

果断 ADO
shiter 2011-01-18
  • 打赏
  • 举报
回复
ADO
连接方便,可以再次封装,我以为ado好使
兼容性好(支持com,oledb的服务器端操作系统)
扩展性好,oledb支持的ado都支持



odbc主要有以下缺点:
1.脚本语言这样的后绑定客户端不好使用
Ionstorm2 2011-01-18
  • 打赏
  • 举报
回复
现在一般用ODBC或者ADO
DAO现在很少用了
外号叫大米 2011-01-18
  • 打赏
  • 举报
回复
刚才忘记写了!我用的是sql server 2000

4,018

社区成员

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

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