问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vc++ 6.0与Access 2003数据库连接的方法

发布网友 发布时间:2022-04-07 18:46

我来回答

4个回答

懂视网 时间:2022-04-07 23:08

建立一个连接数据库的类:

1.头文件:ADOConn.h

#import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF") 

class ADOConnN
{
public:
	_ConnectionPtr m_pConnect;
	_CommandPtr m_pCommand;
	_RecordsetPtr m_pRecord;

	void OnInitADOConn();//初始化数据库连接
	void ExitConnect();//断开数据库连接
	void ExecuteSQL(CString sqlstr);//执行一般的数据库插入、更新、修改等
	_RecordsetPtr GetRecord(CString sqlstr);//返回数据库中查询的数据集等
};

2.在StdAfx.h头文件中添加:

#include "ADOConn.h"

3.实现文件:ADOConn.cpp

#include "stdafx.h"

void ADOConnN::OnInitADOConn()
{
	::CoInitialize(NULL);
	try 
	{ //创建连接对象实例 
		m_pConnect.CreateInstance("ADODB.Connection"); 
		//设置连接字符串 
		CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=;DBQ=localwork.mdb;"; //数据库名称为localwork.mdb
		//使用Open方法连接数据库 
		m_pConnect->Open((_bstr_t)strConnect,"","",adModeUnknown); 
	} 
	catch(_com_error e) 
	{ 
		AfxMessageBox("连接数据失败,请检查数据库路径是否正确!"); 
	}
}

void ADOConnN::ExitConnect()
{
	if(m_pRecord!=NULL)
		m_pRecord->Close();
	m_pConnect->Close();
	::CoUninitialize();
}

void ADOConnN::ExecuteSQL(CString sqlstr)
{
	m_pConnect->Execute((_bstr_t)sqlstr,NULL,adCmdText);
}

_RecordsetPtr ADOConnN::GetRecord(CString sqlstr)
{
	_RecordsetPtr m_precordset=m_pConnect->Execute((_bstr_t)sqlstr,NULL,adCmdText);
	return m_precordset;
}

4.应用:

	CString bstrSQL ="select * from tb_UserInfo";//tb_UserInfo为localwork.mdb中的一个表
	ADOConnN con;//实例化连接数据库对象
	con.OnInitADOConn();//初始化数据库对象中的一些初始化工作
	con.m_pRecord=con.GetRecord(bstrSQL);//获取数据集
	while(!con.m_pRecord->adoEOF)
	{
	  m_Grid.InsertItem(0,"");
	  m_Grid.SetItemText(0,0,(char*)(_bstr_t)con.m_pRecord->GetCollect("Username"));//Username为tb_UserInfo表的一列
	  m_Grid.SetItemText(0,1,(char*)(_bstr_t)con.m_pRecord->GetCollect("password"));//password为tb_UserInfo表的一列
	  //将记录集指针移动到下一条记录
	  con.m_pRecord->MoveNext();
	}
	con.ExitConnect();//断开数据库连接

  

VC++6.0连接Access数据库

标签:

热心网友 时间:2022-04-07 20:16

数据库编程的思路都是一致的:打开数据库连接-》执行SQL语句-》获得查询结果-》关闭数据库连接,不同的数据库访问技术有不同的要求,比如用C API诘问MySql数据库的时候还得释放查询结果集。
ODBC访问数据库得配置数据源

现在用VC、MFC访问数据库常用的技术是ADO,很实用!

导入ADO库
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")
2、用导入的动态库的指针操作数据库.
打开数据库连接
_ConnectionPtr m_pConn; // 数据库连接指针
// 创建Conneciton对象
m_pConn.CreateInstance(_T("ADODB.Connection"));
用ConnectionPtr 的open方法m_pConn->Open(_bstr_t(m_sConn),
_T(""), _T(""), lOptions));
m_sConn为你连接数据库的信息,你应该按照你的要求打开数据库

然后你用打开的那个连接进行操作数据库。比如
_RecordsetPtr pRec = m_pConn->Execute(_bstr_t(pszSql), NULL, CmdText);
pszSql 就你要操作数据库的SQL语句。在这个SQL语句里你可以创建表、更新表等。

用ADO访问的时候要求初始他COM库和释放COM对象
// 初始化COM环境(库)
::CoInitialize(NULL);
//释放COM对象
::CoUninitialize();

ODBC访问数据库
配置ODBC数据源:打开控制面板下的“数据源”,弹出“ODBC数据源管理器”,选择DSN选项卡-》添加->你选择你的SQL Server选项,单击完成。如图然后你再按照向导提示添加。

代码中用ODBC访问数据库你得加上afxdb.h头文件,
用CDataBase 类连接数据库、CRecordSet类查询记录。
现在在VC访问数据库常用的是ADO访问,你可以找一下我前面的回答有ADO访问数据库的步骤。

CDataBase m_cODBCDb;
用CDataBase类的OpenEx()函数打开数据库连接。连接字符串你自己构造一下。
定义一个与上面数据库相关的查询对象
CRecordSet m_cODBCRec(&m_cODBCDb);
用这个查询对象的open方法就可以执行SQL语句与数据库交互了;

热心网友 时间:2022-04-07 21:34

那些库大多比较复杂 我这里有一个高手写的ado类 操作简单

要的话留邮箱

热心网友 时间:2022-04-07 23:08

最好的方法是用别人封装好的类,这样只要知道简单的数据操作就行了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivo手机死机一直亮屏也关不了 vivo手机死机了怎么办,无法关机 为什么我的vivo手机死机关不了机? 企业经营分析手册图书目录 腾达311R如何设置限速,请指教 计算机系统结构:量化研究方法目录 无线W311R,设置限速! 拼多多投直通车亏(拼多多开直通车亏本) 拼多多烧直通车亏本(拼多多直通车一直亏钱) 拼多多烧直通车亏本(拼多多开直通车赔钱) 什么国家的芝士最好? 在没有器材的情况下·在家如何锻炼有效的肱二头肌···?? 黑色冰箱还是金色冰箱 在家不用【哑铃】怎样锻炼肱二头肌? 今年三星冰箱推出了好多款纯黑色的冰箱,都挺好看的,该怎么选择啊? 肱二头肌自己在家怎么练? 客厅都是白色的放黑色冰箱好么 在家怎么锻炼肱二头肌(没有器材)。 怎样在家练习肱二头肌和肱三头肌,家里没有装备怎么办? CPU是用什么和什么组成的 手工包怎么制作? 头一次见面礼他爸爸说给红包给我见面礼然后他妈妈说要他带我去买衣服他爸妈给了我六百零八是什么意思啊? 数字608怎么把这几个数字的谐音弄成搞笑的文字! 如家酒店的电视是电信的还是广电的? 如家(连锁酒店)的电视机能放U盘里的电影吗 ?? 酒店里海信电视怎么开 win98模拟器与虚拟机有什么区别 如何安装WIN98? 求安卓win98系统模拟器主程序+配置文件!!! 酒店房间的电视要如何设置,才能在开机时显示“欢迎入住”之类的内容 黑色冰箱不吉利吗 家里没有器具,怎么锻炼肱二头肌 苹果手机用哪款清理软件 冰箱遂空黑好看吗 在家没有器材怎么练肱二头肌? 怎么快速锻炼肱二头肌 如何在家 锻炼肱二头肌和胸肌 黑色冰箱 肱二头肌要怎么练(不用器材哟 没那个条件) 家用黑色冰箱多吗能够占到百分之多少 冰箱是黑色,橱柜门用什么颜色 关于黑布放在冰箱上面的关于风水的问题 苹果电脑红色关闭网页关不了 盒马“配送小哥已约满”什么意思? 为什么中百多点APP购物订单总显小哥约满? 盒马配送小哥已约满能结算吗 盒马鲜生始终显示快递小哥已约满怎么办? 唐山大润发客服电话买菜显示快递小哥已约满,怎么约? 6:30叮咚显示已约满 阿玛尼黑管504和402属于什么颜色