MFC实现SQL数据库ADO连接

合集下载

mfc sqlserver使用

mfc sqlserver使用

MFC(Microsoft Foundation Classes)是微软提供的一个类库,用于在C++环境下编写应用程序。

而SQL Server是由Microsoft 开发和推广的关系数据库管理系统(RDBMS)。

MFC本身并不直接与SQL Server数据库交互,而是通过ADO (ActiveX Data Objects)或MFC的数据库类(如CDatabase,CRecordset等)来实现与数据库的交互。

如果你想在MFC应用程序中使用SQL Server,你需要做的是:
1. 配置SQL Server数据库:安装SQL Server,创建数据库,配置服务器等。

2. 连接到数据库:使用ADO或MFC的数据库类来连接到你的SQL Server数据库。

3. 执行SQL语句:使用ADO或MFC的数据库类来执行SQL语句,如查询、插入、更新和删除等。

4. 处理结果:获取查询结果,处理异常等。

在MFC应用程序中,你可以使用ADO对象来与SQL Server数据库进行交互。

例如,你可以使用ADO的Connection对象来连接到数据库,使用Command对象来执行SQL语句,使用Recordset对象来获取查询结果等。

另外,你还可以使用MFC的数据库类来与SQL Server数据库进行交互。

例如,你可以使用CDatabase类来打开数据库连接,使用CRecordset类来执行查询并获取结果等。

总的来说,要在MFC应用程序中使用SQL Server数据库,你需要掌握一些关于ADO或MFC的数据库类的知识,并了解如何连接到数据库、执行SQL语句和处理结果等操作。

Visual C++ 6.0连接SQLServer 2005数据库的ADO方法

Visual C++ 6.0连接SQLServer 2005数据库的ADO方法

(1)Windows环境下,ODBC数据源的配置方法:1)开始→设置→控制面板→管理工具→双击“数据源(ODBC)”。

2)在ODBC数据源管理器中,单击“系统DSN”标签;单击“添加(D)”按钮,并在“列表框”中选择“SQL Server”,然后单击“完成”。

如果已经存在现有的数据源,则选择指定的数据源后,单击“配置”,转向对该数据源进行重新配置。

3)在创建到SQL Server新数据源窗口(如图10-4)中的“名称(M):”右侧,输入:VCSQLServer2005;“描述(D):”右侧,输入:VC SQL Server 2005;“服务器(S):”右侧,输入:指定服务器的位置和名称(通常使用默认服务器,输入一个英文字符半角圆点.)。

图10-4 ODBC数据源设置4)在创建到SQL Server新数据源窗口中,单击“下一步(N)>”,选择“使用网络登录ID的Windows NT验证(W)”或者“使用用户输入登录ID和密码的SQL Server(S)”(默认选择前者),然后单击“下一步(N)>”。

5)在创建到SQL Server新数据源窗口中,勾选“更改默认的数据库为(D):”,并在其下方的下拉列表框中,选择用户连接的默认数据库(本例选择:VcSqlAdoDB),然后单击“下一步(N)>”,再单击“完成”。

6)在ODBC Microsoft SQL Server安装窗口中,单击“测试数据源(T)…”,等待测试成功后,单击“确定”完成数据源配置。

(2)Windows环境下,Visual C++ 6.0连接SQLServer 2005数据库的ADO方法:1)引入ADO库定义文件,初始化COM库使用# import把动态连接库msado15.dll导入Visual C++应用程序,并生成定义ADO库的两个C++头文件:msado15.tlh和ado15.tli。

即:# import "c:Program FilesCommon FilesSystemADOmsado15.dll"no_namespace rename("EOF","EndOfFile")使用CoInitialize ()初始化COM库。

VC++中使用MFC通过ADO连接数据库

VC++中使用MFC通过ADO连接数据库

VC++中使用MFC通过ADO连接数据库VC++中使用MFC通过ADO连接数据库一.让我们看看ADO数据库访问技术使用的基本步骤及方法:1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用 #import引用它既可。

可以直接在Stdafx.h文件中加入下面语句来实现:#import "c:/program files/common files/system/ado/msado15.dll"no_namespace rename("EOF", "adoEOF") 【注意,在MFC中路径要用"/"或者"//"】其中路径名可以根据自己系统安装的ADO支持文件的路径来自行设定。

当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵数LoadTypeLib()。

#import语句会在工程可执行程序输出目录中产生两个文件,分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID等进行声明,创建一系列包装方法。

语句no_namespace说明ADO对象不使用命名空间,rename ("EOF", "adoEOF")说明将ADO中结束标志EOF改为adoEOF,以避免和其它库中命名相冲突。

2.其次,在程序初始过程中需要初始化组件,一般可以用CoInitialize(NULL);来实现,这种方法在结束时要关闭初始化的COM,可以用下面语句CoUnInitialize();来实现。

Visual C++ 中使用 ADO、RDO数据绑定

Visual C++ 中使用 ADO、RDO数据绑定

Visual C++ 中使用ADO、RDO数据绑定Visual C++ 中使用ADO、RDO数据绑定 (1)在Visual C++ 中使用ADO 数据绑定需要下列步骤: (1)在Visual C++ 中使用ADO 数据绑定 (1)创建使用ADO 数据控件修改数据的应用程序 (2)在Visual C++ 中使用RDO 数据绑定需要下列步骤: (3)在Visual C++ 中使用RDO 数据绑定 (3)创建使用RDO RemoteData 控件修改数据的应用程序 (4)Visual C++ 中使用ADO、RDO数据绑定在Visual C++ 中使用ADO 数据绑定需要下列步骤:添加ADO 数据控件。

指向数据源。

指定记录源(SQL 查询或数据检索语言)。

添加ADO 数据绑定控件。

将数据绑定控件连接到ADO 数据控件。

选择要绑定到ADO 数据控件记录源的字段。

在 Visual C++ 中使用 ADO 数据绑定使用“MFC 应用程序向导”创建MFC 对话框应用程序或MFC Formview 应用程序。

将Microsoft ADO 数据控件添加到对话框;请参见将控件插入Visual C++ 应用程序。

将ADO 数据控件指向OLE DB 数据源。

右击ADO 数据控件,再单击“属性”。

在“控件”选项卡上,单击“使用连接字符串”。

可以使用提供的提供程序也可以删除它。

单击“生成”。

如果从“使用连接字符串”中删除了提供程序,现在可以定义一个。

定义提供程序后,再次访问ADO 数据控件的属性,然后再次选择“生成”继续。

如果在选择“生成”之前在“使用连接字符串”中定义了提供程序,现在可以定义数据链接属性。

这将显示“DataLink 向导”。

如有必要更改“提供程序”,并为提供程序定义适当的“位置”和“数据源”值。

例如,如果使用的是SQL Server 提供程序,则“位置”指定数据库服务器,而“数据源”指定数据库。

如果使用的是ODBC 提供程序,则“数据源”对应于ODBC DSN。

C#ADO方法连接数据库

C#ADO方法连接数据库

用C#动态创建Access数据库记得以前要动态的创建Access数据库的mdb文件都是采用DAO,用VC开发,一大堆的API,很是麻烦。

现在好像也鲜有人提起DAO。

其实动态的创建mdb数据的最简单的方法还是ADOX。

用ADOX创建access数据库方法很简单,只需要new一个Catalog对象,然后调用它的Create 方法就可以了,如下:ADOX.Catalog catalog = new Catalog();catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb;JetOLEDB:Engine Type=5");仅仅两行代码就搞定了。

下来我主要介绍一下在c#中的实现细节。

首先你要添加引用,在“Add reference”对话框里切换到Com页面,选择“Microsoft ADO Ext. 2.8 for DDL and Security”,然后点击OK。

在文件的开头using ADOX名字空间。

然后添加如上面所示的代码就可以成功的创建Access 数据库了,代码如下:using System;usingSystem.Collections.Generic;usingSystem.Text;using ADOX;namespace testADOX{class Program{static void Main(string[] args){ADOX.Catalog catalog = new Catalog();catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb;JetOLEDB:Engine Type=5");}}}创建了数据库文件是没有实际用处的,我们还要创建表。

在创建表之前,我们必须连接目标数据库,用来连接数据的桥梁居然是ADO的Connection对象,所以我们不得不再次添加对ADO的应用,在添加引用对话框中切换到Com页面,选择“Microsoft ActiveX Data Objects 2.8 Library”,然后点击OK。

在MFC中连接SQL数据库的简单方法

在MFC中连接SQL数据库的简单方法

这一步比较简单,直接打开SQL Server Management Studio,根据自己需要设计数据库中的表,及其之间的依赖关系等等!要想设计一个完美的数据库,就必须了解数据库的基本知识。

这里不再具体说了。

这里我们假设我们的数据库名字为Test012、配置数据源数据库设计建立完成后,它只是单独的几张表,我们并不能在程序中去访问它,因为程序并不知道数据库在哪里。

因此,就要在应用程序跟数据库之间建立连接。

配置数据源说通俗了就是为数据库创建一个对外的窗口,应用程序通过这个窗口来访问数据库中的数据。

具体配置步骤为:1)打开控制面板--〉管理工具--〉数据源,在用户DSN面板选择“添加”2)在数据源驱动程序中选择“SQL Server” --〉完成,即打开“创建到SQL Server 的新数据源”3)在“数据源名称”中填入名称,我们填TestSQL01,然后选择服务器,在其中选择要连接到的SQL Server服务器。

(如果你电脑的SQL Server服务打开的话,就会有自己的主机名。

或者选择网络上的某个SQL Server。

4)点击下一步配置认证信息5)配置完后点击下一步,选中“更改默认的数据库为”复选框,在下拉中选择自己刚才建立的要连接的数据库。

(这一步很重要,一般一个Server上会有多个数据库,如果不更改数据源的默认数据库,你建立的数据源将连接到默认的数据库,这样就会造成程序中执行SQL语句时“对象名无效”的错误,即找不到你指定的数据表等)6)选择完数据库后直接下一步--〉完成就完成了数据源的配置。

接下来会出现配置数据源的基本信息,可以通过“测试数据源”来测试数据源是否配置成功。

3、数据库的连接建立完数据库,又配置好了数据源,接下来就可以在程序中通过数据源来访问数据库了。

1)首先要在程序中引入MFC ODBC数据库的定义文件#include <afxdb.h>2)定义CDataBase数据库对象,CDatabase m_db;3)利用CDataBase类的OpenEx函数建立和数据库的连接;m_db.OpenEx(_T("DSN=TestSQL01;"),CDatabase::noOdbcDialog);/*这里的TestSQL01 即为步骤2中建立的数据源,然后根据OpenEx函数格式填入参数,主要是用户名、密码之类,这里没有设置,所以就没有*/在完成了上面的步骤后,就可以使用SQL语句对数据库进行操作了。

使用VBA连接SQL数据库获取数据

使用VBA连接SQL数据库获取数据

使用VBA连接SQL数据库获取数据VBA是Visual Basic for Applications的缩写,它是Microsoft Office套件内的一种编程语言。

通过VBA,我们可以在Microsoft Excel、Access等软件中编写代码来进行数据操作和处理。

在VBA中,我们可以使用ADO(ActiveX Data Objects)来连接SQL数据库并获取数据。

ADO是Microsoft的一组COM组件,提供了访问多种数据库的接口和功能。

下面是使用VBA连接SQL数据库获取数据的步骤:1.引入ADO库:2.创建连接对象:在代码中,首先要创建一个ADODB.Connection对象,用于表示与SQL数据库的连接。

可以使用如下代码创建连接对象:```vbaDim conn As New ADODB.Connection```3.打开连接:使用连接对象的Open方法打开与数据库的连接。

需要提供连接字符串,指定数据库的位置、用户名、密码等信息。

具体连接字符串的格式取决于使用的数据库类型和驱动程序。

以下是一个连接MySQL数据库的示例代码:```vbaDim conn As New ADODB.ConnectionDim connStr As Stringconn.Open connStr```4.创建命令对象:```vbacmd.ActiveConnection = conn```5.执行SQL查询:指定要执行的SQL查询,并使用命令对象的Execute方法执行该查询。

以下是一个查询表数据的示例代码:```vbaDim sql As Stringsql = "SELECT * FROM Customers"Dim rs As ADODB.RecordsetSet rs = cmd.Execute(sql)```6.处理返回结果:执行完查询之后,可以通过Recordset对象获取返回的结果。

MFC中使用ADO连接SQL Server 2008 R2

MFC中使用ADO连接SQL Server 2008 R2

MFC中使用ADO连接SQL Server 2008 R2一、在工程中添加一个MFC类ADO_Database,当然,你可以定义一个别的类名,只要这个类名是合法的二、在解决方案中找到ADO_Database.h文件,并在这个文件中进行一下步骤:1、在头文件的最开始添加以下代码#import "C:\Program Files\Common Files\System\ado\msado15.dll" \no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")2、在public中//添加一个指向Connection对象的指针_ConnectionPtr m_pConnection;//添加一个指向Recordset对象的指针_RecordsetPtr m_pRecordset;3、在public中//添加三个函数void OnInitADOConn(void);//连接到数据库void ExitConnect(void);//与数据库断开连接_RecordsetPtr GetRecordSet(_bstr_t bstrSQL);//获取数据集三、在解决方案中找到ADO_Database.cpp文件,并在文件中进行以下步骤:1、实现连接数据库方法void ADO_Database::OnInitADOConn(void){//初始化OLE/COM库环境::CoInitialize(NULL);try{//创建connection对象m_pConnection.CreateInstance("ADODB.Connection");//设置SQL Server的连接字符串,其中Initial Catalog为数据库名称,Data Source为//服务器名称,Open函数的第2、3个参数分别为数据库的用户名和密码_bstr_t strConnect = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;InitialCatalog=NetWork_gobang;Data Source=TabbyCat-PC";m_pConnection->Open(strConnect, "Project", "Project", adModeUnknown);}//捕捉异常catch (_com_error e){//显示错误信息AfxMessageBox(e.Description());}}2、实现与数据库断开连接方法void ADO_Database::ExitConnect(void){//关闭记录集和连接if (m_pRecordset != NULL)m_pRecordset->Close();m_pConnection->Close();//释放环境::CoUninitialize();}3、实现获取数据集方法_RecordsetPtr ADO_Database::GetRecordSet(_bstr_t bstrSQL){try{//连接数据库,如果connection对象为空,则重新连接数据库if (m_pConnection == NULL)OnInitADOConn();//创建记录集对象m_pRecordset.CreateInstance(__uuidof(Recordset));//取得表中的记录m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic, adLockOptimistic, adCmdText);}catch (_com_error e){e.Description();}//返回记录集return m_pRecordset;}四、调用方法进行数据库操作1、在头文件中引用并声明#include "ADO_Database.h"ADO_Database m_adodatabase;//定义数据库对象2、使用方法实现数据库的连接、操作和关闭m_adodatabase.OnInitADOConn();//连接到数据库CString sql;sql.Format(L"select* from Information");// Information为数据表的名称_RecordsetPtr m_pRecordset;//打开记录集m_pRecordset = m_adodatabase.GetRecordSet((_bstr_t)sql);try{m_pRecordset->AddNew();m_pRecordset->PutCollect("time", (_bstr_t)svtm);//向数据库中添加CString类型的数//据m_pRecordset->PutCollect("id", tcpPackage.id);//向数据库中添加int类型的数据m_pRecordset->Update();m_adodatabase.ExitConnect();//断开与数据库的连接}catch (...){AfxMessageBox(L"写入数据失败!");return;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC MFC实现SQL数据库ADO连接(完整版)关于vc6.0中实现ADO SQL数据库连接的文章网上虽然很多,但大多写的很繁琐,对于我们这样的菜鸟来说,还是很希望有一篇简单化的文章的。

希望跟我一样的菜鸟们学得开心!
源代码文件链接:
概述:
要在一个vc工程中实现数据库的连接,最好的方式是在新建一个用于连接数据库的类比如ADOConn,需要连接数据库的时候将这个类实例化就可以了。

操作:新建一个ADOConn的对象,比如ADOConn ac;。

然后再引用些对象就可以实现相应的操作了。

实践过程:
(一)目的:封装一个自己的类。

在vc6.0中新建一个基于对话框的mfc工程,然后点击菜单栏->插入->类(mfc类)。

然后在“类的类型”中选择Generic Class,名称为ADOConn。

此后会在vc左边视窗的“Source Files”中多出一个ADOConn.cpp的文件,在"Header
Files"中多出一个“ADOCon.h”的文件。

如果是用VS2013来创建工程的情况:
VS2013中添加类:
右击myMFC(新建的项目)——添加——类——MFC类。

(二)打开ADOConn.h(即编辑ADOConn类的头文件)
(1)在第一行加入(用于vc支持ado连接)
这句话意味使用msado15.dll动态连接库文件,里面就有ADO.
如果存在问题:用VS2010的C++导入ADO导入不了,提示无法打开源文件msado15.tlh”的问题。

解决办法很简单:
在生成菜单--- 重新生成 --- 即可。

原因是:
当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵LoadTypeLib()。

#import语句会在工程可执行程序输出目录中产生两个文件,分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID 等进行声明,创建一系列包装方法。

在没有经过编译器编译之前,文件还没有生成,所以,会出现错误提示。

(2)在class ADOConn类体中添加如下代码
至此ADOConn.h的操作完成。

(三)打开ADOConn.cpp(逐个实现其头文件ADOConn.h中定义但末实现的方法),将如下代码拷入文件末尾。

这段代码涉及到获取数据库连接中会出现的异常,并进行处理,不用过于深究其作用,等数据库连接成功后再慢慢研究。

此段代码中有些地方要根据自己数据库的配置情况,进行适当的改动。

需要改动的代码为:
如:
Provider不用改,Server是服务器的名称,怎么查看呢?
打开sql managementstudio连接进行后在左边的“对象资源管理器”中会看到服务器的名称。

我的叫DESKTOP-80T6JHL; Database是要连接到的数据库名称。

比如我在management studio中新建了一个数据库table1; uid=登陆服务器的用户名;pwd=这个用户名的密码,我的密码是123456;到这里就完成了此段代码的修改了。

(四) 保存以上文件。

即完成了sql ado连接类ADOConn的编辑。

比如我要在telbookDlg.cpp中需要连接到数据库,只需要引用如下代码:
到此,实现ado sql数据库的功能。

知识点补充:
要插入数据可以调用下面的语句:
其他说明:判断数据库连接是否成功的函数:
详解MFC使用ADO连接SQLServer数据库
VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。

一、ADO概述
ADO是Microsoft为最新和最强大的数据访问范例OLE DB 而设计的,是一个便于使用的应用程序层接口。

ADO 最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。

二、在VC中使用ADO接口技术
1、引入ADO库文件
使用ADO前必须在工程的stdafx.h头文件里的顶头引入ADO库文件,以使编译器能正确编译。

用#import引入ADO库文件
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF 改名为adoEOF。

现在不需添加另外的头文件,就可以使用ADO接口了。

2、初始化OLE/COM库环境
必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM 库环境。

在MFC应用程序里,一个比较好的方法是在应用程序主类的:OnInitADOConn成员函数里初始化OLE/COM库环境。

(详细代码见上边的例子)
3、ADO接口简介
ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。

_ConnectionPtr接口返回一个记录集或一个空指针。

通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。

使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。

对于要返回记录的操作通常用_RecordsetPtr 来实现。

而用_ConnectionPtr操作时要想得到记录条数得遍历所有记录,而用_RecordsetPtr时不需要。

_CommandPtr接口返回一个记录集。

它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。

在使用_CommandPtr接口时,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr 接口里直接使用连接串。

如果你只执行一次或几次数据访问操作,后者是比较好的选择。

但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_ConnectionPtr接口创建一个数据连接,
然后使用_CommandPtr接口执行存储过程和SQL语句。

_RecordsetPtr是一个记录集对象。

与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。

同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自己创建数据连接。

如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr 接口,然后使用_RecordsetPtr执行存储过程和SQL语句。

4、使用_ConnectionPtr接口
_ConnectionPtr主要是一个连接接口,取得与数据库的连接。

它的连接字符串可以是自己直接写,也可以指向一个ODBC DSN。

剩下部分资料,见:
好吧,直接来个例子吧:
//使用时注意代码中我的说明!!因为要修改一些内容!因为每个人登录数据库的登录信息,链接的数据库名均不一样,所以要修改!!。

相关文档
最新文档