MFC连接数据库

简介:

我是一个刚刚进入VC++的一个小菜鸟 ,最近由于有一个课题需要 使用VC++和数据库的连接的编程课题,所以我初次学习了这方面的内容。我折腾了2天的样子,才写出了一个很简易的Test,这里我主要想分享下我在学习的过程中遇到的问题和一点点小小的体会吧,希望有懂的人看到了这篇博客愿意帮我解答下这些问题,感之不尽。

由于入门的书是《VC++开发入门和编程实践》,上面关于这个部分的内容有亮点,一个是ODBCADO。我就拿了ODBC做了第一次尝试,我用的是ACCESS2010VS2010,结果在建立MFC的时候选择数据源的时候出现了问题,开始的时候是说需要必须连接数据源,可是刚刚我点了很多次我需要建立的数据源啊?然后我就从MFC建立的同时新建数据源,结果悲剧又发生了,还是连接不上,于是我转战ADO

首先我看了孙鑫的视频第二十课,讲到了ADO连接数据源的相关编程。根据我图书馆中借的书《Vistual C++ 数据库系统开发完全手册》的内容了解到了很多,所以,我在这里根据孙鑫的视频编程归纳了一下大致的编程顺序:

我前期各种教程的一个最大的苦恼就是一些ADO函数不知道在哪里添加,在这里我就说明下把,如果是一个基于对话框模式的MFCexe文件,就直接在那个你需要进行数据库调用的那个按钮对应的函数添加。

第一步,需要囊括ADO的文件:#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 放在StdAfx.h中关于各种include的描述之后。这句话中#import的意思是引入,后面使用了rename为了避免类型库文件中的EOF和系统文件的EOF重名。

第二步,各种初始化和定义:

     CoInitialize(NULL);  //初始化COM环境

_ConnectionPtr pCon( __uuidof(Connection));

_RecordsetPtr pRe(__uuidof(Recordset));

Connection对象是与数据源相连接,而Recordset对象记录集。

第三步,连接:

pCon->ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;User ID=admin;Data Source=Agenda";

try

{

pCon->Open("","","",adConnectUnspecified);

}

catch(_com_error *e)

{

::MessageBox(NULL,_T("无法打开"),_T("提示"), MB_OK | MB_ICONWARNING);

}     

我就在这部卡了很久很久,因为我获取不到pCon->ConnectionString。这是一个连接字符串,我看到的大部分方法都是从一个COM控件Ado Date Control获取,可是VS2010已经不存在这个控件了,在去百度了下一些教程。结果下的OCX文件说不兼容,让我很纠结,我到现在为止都不知道如何在VS2010上面获取这个连接字符串,我希望有高手能够指导我这个问题。

后来我实在没有办法就直接下了个VC6.0++来获取这个连接字符串,很轻松的就获取到了。但是毕竟这种方法灰常麻烦,所以我很蛋疼。

接下来每个步骤瞬间就很简单了,至于这里为啥要用try和catch,是因为我怕连接的时候出现各种神奇的问题,于是我想捕捉下错误。

第四歩,用SQL语句操作:

try

{

pRe = pCon->Execute("SELECT * FROM Agenda",               

NULL,

adCmdText);

}

catch(_com_error *e)

{

AfxMessageBox(e->ErrorMessage());

}

Execute这个方法的意义我个人以为是将连接和使用结合的作用。第一个参数是SQL语句,第二个是个可选的参数 ,用来返回记录数目 ,第三个这是如何为其赋值。

第五步,对数据库操作:

while(!pRe->adoEOF)

{

((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRe->GetCollect(_T("AgendaName")));

pRe->MoveNext();

}

第六步,释放占有的内存:

pRe->Close();

pCon->Close();

pRe.Release();

pCon.Release();

CoUninitialize();

注意,最后两个Release之前必须是用.而不是->,然后VS2010中不知道为啥会将.强制改为->,这不我也是从VC6.0++上更改的。

OK,这两天的爆头苦恼的数据库连接就搞定了,接下来课题依旧还要继续写,希望这篇文章会给有帮助的初学者些许帮助吧,还请如果的高手指导我如何在VS2010中获取对应的连接字符串。谢谢!!


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/archive/2013/01/19/2867210.html,如需转载请自行联系原作者

相关文章
|
11天前
|
关系型数据库 MySQL 数据库连接
Unity连接Mysql数据库 增 删 改 查
在 Unity 中连接 MySQL 数据库,需使用 MySQL Connector/NET 作为数据库连接驱动,通过提供服务器地址、端口、用户名和密码等信息建立 TCP/IP 连接。代码示例展示了如何创建连接对象并执行增删改查操作,确保数据交互的实现。测试代码中,通过 `MySqlConnection` 类连接数据库,并使用 `MySqlCommand` 执行 SQL 语句,实现数据的查询、插入、删除和更新功能。
|
25天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
3天前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
44 25
|
4月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
384 3
|
30天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
55 2
|
3月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
147 68
|
3月前
|
数据库 C# 开发者
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
|
3月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
3月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
85 3
|
4月前
|
关系型数据库 MySQL 数据库连接
DBeaver如何连接一个数据库
【10月更文挑战第27天】DBeaver 是一款功能强大的通用数据库管理工具,支持多种主流数据库。本文介绍了使用 DBeaver 连接数据库的基本步骤,包括下载安装、创建新连接、选择数据库类型、配置连接参数、测试连接以及最终连接到数据库。详细的操作指南帮助用户轻松管理和操作数据库。
875 9

热门文章

最新文章