VC++6.0连接Access数据库
建立一个连接数据库的类:
1.头文件:ADOConn.h
#import "C:\Program Files\Common Files\System\ado\msado15.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数据库的更多相关文章
- VC++6.0连接MySQL数据库(MySQL API)
一.MySQL的安装 Mysql的安装去官网下载就可以...最新的是5.7版本..二.VC6.0的设置(1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories ...
- 64位Winows2008下连接Access数据库 Jet4.0不支持解决代替方案
如何在windows2008 64位的机子上连接Access数据库 用以前的连接Access数据库的方式Provider=Microsoft.Jet.OLEDB.4.0在32位机子上可以使用,在64位 ...
- java远程连接access数据库
本文转载自http://www.voidcn.com/article/p-tlrtkqlp-k.html 1 rmijdbc远程连接access数据库 正常情况下,常用的数据库sql server, ...
- win7 64 VC++ ado方式连接access 连接字符串
运行环境:win7 64 vc++6.0 office 2007 32位(access 2007) 我用的是ado方式连接access数据库,(现在的Win7系统中安装的一般 ...
- 【.net 深呼吸】连接Access数据库应注意的几点
本地数据库可以有Y种选择,比如Sqlite.SQL Server Express.SQL Local DB.SQL Server CE.Access等,本文老周选用比较著名的Access本地数据库,在 ...
- C#连接Access数据库(详解)
做一个用VS2012的C#连接Access数据库的备忘, SQL数据库固然强大,有大微软的强力技术支持,LINQ的方便操作,但是如果写一个小程序对数据库方面没有什么大的要求的话,将来在数据库方面就可以 ...
- ASP.net分别连接SQLserver数据库与连接Access数据库精英版
-------------------------连接access2003 字符串------------------------- Provider=Microsoft.Jet.OLEDB.4.0; ...
- php连接Access数据库错误及解决方法
<?php $connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("data.m ...
- C# 连接 Access 数据库
c#连接Access 数据库需要System.Data, System.Data.OleDb using System.Data using System.Data.OleDb public OleD ...
随机推荐
- Hibernate逍遥游记-第10章 映射继承关系-003继承关系树中的每个类对应一个表(joined-subclass)
1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...
- RunAsAdmin in windows 8
function RunAsAdmin(hWnd: HWND; filename: string; Parameters: string): Boolean; { See Step 3: Redesi ...
- 31. Next Permutation
题目: Implement next permutation, which rearranges numbers into the lexicographically next greater per ...
- C++:基类和派生类
4.1 派生类的声明 继承实例如下: class Person{ //声明基类Person public: void print() { cout<<"name:"&l ...
- 用Telnet发送HTTP请求
1. 进入cmd命令环境 2. 输入"telnet www.baidu.com 80" 3. 利用快捷键"Ctrl+](右中括号)"来打开本地回显功能 (注本阶 ...
- 转Struts 权限控制
权限最核心的是业务逻辑,具体用什么技术来实现就简单得多. 通常:用户与角色建立多对多关系,角色与业务模块构成多对多关系,权限管理在后者关系中. 对权限的拦截,如果系统请求量大,可以用Struts2拦截 ...
- 转Unity 异常操作
摘要 使用 unity 处理异常的方法可能会与你的直觉不符.本文将给出正确的处理方法,并简单剖析Unity这部分源代码. 处理异常 打算用Unity的AOP截获未处理的异常,然后写个日志什么的,于是我 ...
- Mmap的实现原理和应用
http://blog.csdn.net/edwardlulinux/article/details/8604400 很多文章分析了mmap的实现原理.从代码的逻辑来分析,总是觉没有把mmap后读写映 ...
- NLP基本任务-nltk_data文本分割
将文本分割为句子 nltk.sent_tokenize(text,language) text:需要分割的文本 language:语言种类 czech捷克语 danish丹麦语 dutch荷兰语 en ...
- NFC(2)NFC、蓝牙和红外之间的差异
NFC(2)NFC.蓝牙和红外之间的差异表