mfc 将变量存入MySQL_MFC中使用ADO进行数据库操作

本文介绍了如何在MFC应用程序中使用ADO(ActiveX Data Objects)进行数据库操作,特别是针对MySQL数据库。内容包括:导入ADO库,初始化OLE/COM环境,创建并设置Connection对象,建立数据库连接,以及使用Recordset对象进行数据读写。示例代码详细展示了如何连接到Access和SQL Server数据库,以及执行SQL命令、添加、编辑和删除记录。
摘要由CSDN通过智能技术生成

https://www.cnblogs.com/sunniflyer/p/4118956.html

数据库与数据库编程:

当前各种主流数据库有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL,

DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS

ACCESS等等。

数据库编程是对数据库的创建、读写等一列的操作。数据库编程分为数据库客户端编程与数据库服务器端编程。数据库客户端编程主要使用ODBC

API、ADO、ADO.NET、OCI、OTL等方法;数据库服务端编程主要使用OLE DB等方法。

数据库编程需要掌握一些访问数据库技术方法,还需要注意怎么设计高效的数据库、数据库管理与运行的优化、数据库语句的优化。

ADO编程的一般步骤:

创建一个Connection对象

打开数据源,建立同数据源的连接

执行一个SQL命令

使用结果集

终止连接

ADO最重要的三个对象:

连接对象(Connection)

命令对象(Command)

记录集对象(RecordSet)

在使用这三个对象的时候,需要定义与之相对应的智能指针:_ConnectionPtr、_CommandPtr、_RecordsetPtr

使用智能指针要:定义指针变量、创建其实例(实例化)、调用方法和属性。该智能指针在析构对象时,自动调用Release方法,即使用后不需要手动释放内存,代码更加简洁。

但需要调用Close方法,关闭连接Connection或者记录集RecordSet。

一、ADO编程预处理操作

1.1 导入ADO动态链接库:

在工程的stdafx.h中加入如下语句:

#import "c:\\Program Files\\Common

Files\\System\\ADO\\msado15.dll" rename_namespace("ADOCG")

rename("EOF","adoEOF") //rename("BOF","adoBOF") no_namespace

using namespace ADOCG;

注:import代码要在一行中完成,换行需添加'\'

1.2 初始化OLE/COM库环境:

在基于MFC的应用里,在应用类的InitInstance成员函数中初始化OLE/COM库环境,直接使用AfxOleInit,在退出应用时,该函数自动负责COM资源的释放,比较方便,不用在

ExitInitInstance中添加相关操作:

BOOL CYourApp::InitInstance()

{

AfxEnableControlContainer();

//初始化OLE DLLs

if(!AfxOleInit())

{

AfxMessageBox("初始化OLE DLL失败!");

Return

FALSE;

}

......

}

二、ADO进行数据库连接:

2.1 在App类的头文件中定义变量:

_ConnectionPtr m_pConnection;

2.2 创建智能指针的实例:

在App类的cpp文件InitInstance方法中:

m_pConnection.CreateInstance("ADODB.Connection");

//或者m_pConnection.CreateInstance(__uuidof(Connection));

使用'.'而不是->创建m_Connection实例,然后m_pConnection->open方法创建连接。

2.3 设置连接字符串,以便指定需要的连接

2.3.1 使用JET数据库引擎实现对Acess2000类型的数据库info.mdb的连接

CString strSQL=_T("Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=info.mdb;User ID=admin;Passward=;");

2.3.2 使用OLE DB提供者实现对SQL Server的标准安全连接串

CString str SQL=_T("Provider=SQLOLEDB;Data

Source=local;Initial Catalog=DVDRentDB_Data.MDF;User

ID=sa;Password=123456;");

或者是在此处不设置User

ID和Password,而直接在Open的第2、3个参数中设置。

CString

strConnection="Provider=SQLOLEDB;DataSource=local;Initial

Catalog=DVDRentDB_Data.MDF";

m_pConnection->Open((_bstr_t)strSQL,"sa","820415",adModeUnknown);

注意:

上面设置连接字符串的时候,如果过长需要分行时,则每一行都要加上双引号,在最后加上分号即可。

如果是本地服务器,则Data Source=loca l或 本地服务器名(主机名)

若数据库没有设置密码,在连接字符串中可以将其省略,但User ID不能省

若数据库和程序文件不在同一文件夹下,直接写数据库名即可,在InitialCatalog中不需加上该数据库的存储器地址

2.3.3 使用OLE DB提供者实现对远程SQL Server的标准安全连接串

strConnect=_T("Provider=sqloledb;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值