C_Builder中基于ADO的数据库访问方法
VC_基于ADO技术访问数据库
0引言在应用软件的开发中,常常需要编写访问数据库的程序代码,VC++提供了多种访问数据库的接口,如ODBCAPI、MFCODBC、DAO、OLEDB、ADO等,这些种数据库访问技术各有特点,许多相关书籍中都有介绍,在此就不赘述了。
在这些数据库访问技术中,ADO(ActiveXDataObjects)技术无疑是最高效的也是最有前途的数据库访问技术,ADO是建立在OLEDB底层数据库访问技术基础上的高级编程接口,由于它具有强大的数据处理功能和极其简单、易用的特点,因而得到了广泛的应用。
1ADO对象与编程环境1.1ADO对象ADO数据库接口是基于对象的集合,ADO对象包括Con-nection对象、Command对象、Recordset对象、Field对象、Parame-ter对象、Property对象和Error对象等,其中Connection、Com-mand和Recordset三个对象是主体对象,它们可以被独立创建和释放。
Connection对象用来建立和维护与数据源的连接,对数据源的任何操作都需要一个Connection对象。
Recordset对象包含执行数据库操作后返回的一个记录集,通过该对象可以浏览和更新数据库中保存的记录。
在VC应用程序中,我们只需使用Connection对象建立与数据源的连接,然后通过Recordset对象就可以对结果记录集进行浏览、更新等操作。
1.2ADO编程环境在VisualC++程序中使用ADO对象,首先需要导入ADO动态链接库。
引入动态链接库文件的方法是在创建的VC工程的stdafx.h头文件中添加如下代码:#import"C:\ProgramFiles\CommonFiles\System\ado\msado15.dll"\no_namespacerename("EOF","adoEOF")根据Windows操作系统版本不同动态链接库文件可能是msado10.dll、msado15.dll或msado20.dll。
VC中使用ADO技术访问数据库
接选项 , 用于指定 C n et n 象对数据 的更新许可权 。 o nc o 对 i 常用 的连接方式有 以下几种: () 1 通过 J T数据库 引擎 对 A C S 00数据 库 的 E C E S 20
连接 :
m
_
该语句声明在工程 中使用 A O, 不使 用 A O的名字 D 但 D 空间, 并且 为了避 免常数冲突, 将常数” O ” E F 改名”dE P 。 aoO '
要 使 用 A O 对 象 访 问数 据 库 ,必 须 在 工 程 的 s a . D t fh d x 文 件 里 用 直 接 引 入 符 号 ip r 引入 A O 库 文 件 , 以使 编 #m ot D
_
一
Us r D, b t t P sw r ,ln p i s el s _ as od o g O t n ) r o
中 图分 类号 : r 31 .3 P 11 文献 标识 码 : A 文章 编 号 :0 2 2 2 2 0 0 — o 2 0 1 0 — 4 2( 0 8) 1 0 4 — 2
Usn i gADO c n lg t b s c s Te h oo yi Daa a eAc es nVC n i
这样 不需 添 加 另 外 的 头 文 件 , 可 以使 用 A O 接 口 了。 就 D
应用程序在调用 A O前, D 必须初始化 C M库环境 。 O 在 MF C应用程序里 ,一个 比较好的方法 是在应用程序主类 的
33 O A L . R C E数 据 库 物 理 备 份 专 用 策 略
译器能正确编译。代码 如下所示 :
#m ot ipr
no
_
c ̄rga fe ̄ m n fek s m om a o . : orm d s o mo d s yt  ̄dk sdl d ' s e 5
ADO操作数据库的方法步骤
ADO操作数据库的方法步骤ADO(ActiveX Data Objects)是一种用于操作数据库的技术,它提供了一组对象和方法,可以有效地与数据库进行交互。
ADO是使用OLE DB (Object Linking and Embedding Database)技术来实现的,它可以连接多种不同的数据库,包括SQL Server、Oracle、Access等。
下面是使用ADO操作数据库的方法步骤。
1.引用ADO库要使用ADO操作数据库,首先需要在项目中引用ADO库。
可以在编程环境中的“引用”或者“项目属性”中添加对ADO库的引用,确保可以使用ADO库提供的对象和方法。
2.创建连接对象创建一个ADO连接对象以连接到数据库。
连接对象是ADO的核心对象之一,它提供了与数据库建立连接和断开连接的功能。
可以使用Connection对象的构造函数或者使用CreateObject函数创建一个连接对象。
3.打开连接使用连接对象的Open方法来打开连接。
在打开连接之前,需要设置连接字符串(Connection String),连接字符串包含了连接数据库的详细信息,比如数据库的类型、服务器地址、用户名、密码等。
可以使用连接字符串构造函数或者直接设置连接对象的ConnectionString属性来设置连接字符串。
4.创建命令对象5.设置命令类型和SQL语句6.执行命令使用命令对象的Execute方法来执行命令。
如果SQL语句是查询语句,可以使用命令对象的Execute方法或者ExecuteReader方法执行命令,并使用记录集对象来获取返回的数据。
如果SQL语句是更新、插入或删除语句,可以使用ExecuteNonQuery方法来执行命令,该方法返回受影响的行数。
7.处理返回的数据如果执行的是查询语句,可以使用记录集对象来获取返回的数据。
可以使用记录集对象的MoveFirst方法将指针移动到第一条记录,然后使用各种属性和方法来访问记录集中的数据,比如Fields,RecordCount,EOF等。
第十七章 C++ Builder 利用ADO元件开发资料库程式
上一章我们提到了开发资料库应用程式的步骤 及方法,在这一章里面我们将带入另一个不同 的东西,他就是"ADO"元件.我们将利用 ADO元件跟我们的资料库连接上,并且开发应 用程式.
1
大纲
17-1. 何谓ADO元件 17-2. 使用ADO连接资料库 本章习题
2
17-1. 何谓ADO元件
前两章有关资料库的章节内,我们几乎都是透过ODBC或是 BDE去连结资料库,但是在这一章里面,我们将要提出一个 全新的元件来连结资料库,这个元件就是ADO元件. 什麼是ADO呢?
– 他的全名是『ActiveX Data Object』,很多人都以为A是Active,这是 错误的观念. – ADO是微软公司为了解决企业内的资料存取整合所提出的方法之一. ADO除了可以连接资料库外,其实还可以连接许多不同的资料,在微 软的MSDN上,『Interface to all kinds of data』就可以印证这句话. – ADO物件实际上其实也是透过OLE DB来存取所有的物件,所以在这 边大家可以将ADO想成是比较高阶的DB连接介面.
12
17-2. 使用ADO连接资料库
范例17-2中ADOQuery所需要设定的重要属性
– Connection:设定成ADOConnection的Name – SQL:按下SQL这个属性旁边的小按钮,然后会出现一个编辑SQL语 法的视窗让我们输入SQL的语法.
接著我们再将DataSource和DBGrid设定完成后,我们可以得 到如下的执行结果
7
17-2. 使用ADO连接资料库
ADOConnection常见的重要属性 (cont.)
– Keep Connection 当连线中已经没有任何DataSet被开启或是被使用时,是不是还要保留著 目前这个Connection. – Mode CmUnknown:权限还没被设定 CmRead:唯读 CmWrite:只允许写入 CmReadWrite:允许读写 CmShareDenyRead:防止(不提供)其他连线有读取的权限 CmShareDenyWrite:防止(不提供)其他连线有写入的权限 CmShareExclusive:防止(不提供)其他的连线 CmShareDecyNone:防止(不提供)其他的连线有任何的权限 – Provider O料库
使用ADO操作数据库
使用ADO操作数据库ADO (ActiveX Data Objects) 是一种用于访问数据库的编程技术,它是微软开发的一种组件对象模型(COM)。
ADO 提供了一种统一的方法来访问各种类型的数据源,如关系数据库、Excel 表格、文本文件等。
通过使用 ADO,开发人员可以简化数据库操作,并提高代码的可重复性和可维护性。
ADO 可以在许多编程环境中使用,如 Visual Basic、ASP、C++等,并且可以与不同的数据库进行交互,如 SQL Server、Oracle、MySQL等。
ADO 使用了一种层次化的模型来表示数据库,即连接、命令、记录集和字段。
下面将详细介绍如何使用 ADO 进行数据库操作。
首先,我们需要建立与数据库的连接。
在 ADO 中,可以使用Connection 对象来实现。
连接字符串是连接到数据库所需的关键信息。
例如,在连接到 SQL Server 数据库时,连接字符串通常包含服务器名称、数据库名称、用户名和密码等信息。
以下是一个示例连接字符串的格式:```Provider=SQLOLEDB;Data Source=ServerName;InitialCatalog=DatabaseName;User ID=UserName;Password=Password;```接下来,使用 Connection 对象打开与数据库的连接:```vbDim conn As New ADODB.Connectionconn.Open "连接字符串"``````vbcmd.ActiveConnection = conn```在执行命令之前,我们需要创建一个 Recordset 对象来存储查询结果。
Recordset 对象可以看作是一个二维表,其中包含了从数据库中返回的数据。
以下是创建 Recordset 对象的代码:```vbDim rs As New ADODB.Recordsetrs.Open cmd, , adOpenStatic, adLockReadOnly```在获取了数据库查询结果后,我们可以使用 rs 对象来访问这些数据。
VC 使用ADO连接数据库
一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。
ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。
ADO 最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。
ADO 在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。
之所以称为 ADO,是用了一个比较熟悉的暗喻,OLE 自动化接口。
OLE DB是一组”组件对象模型”(COM) 接口,是新的数据库低层接口,它封装了ODBC的功能,并以统一的方式访问存储在不同信息源中的数据。
OLE DB是Microsoft UDA(Universal Data Access)策略的技术基础。
OLE DB 为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。
也就是说,OLE DB 并不局限于 ISAM、Jet 甚至关系数据源,它能够处理任何类型的数据,而不考虑它们的格式和存储方法。
在实际应用中,这种多样性意味着可以访问驻留在 Excel 电子数据表、文本文件、电子邮件/目录服务甚至邮件服务器,诸如 Microsoft Exchange 中的数据。
但是,OLE DB 应用程序编程接口的目的是为各种应用程序提供最佳的功能,它并不符合简单化的要求。
您需要的API 应该是一座连接应用程序和OLE DB 的桥梁,这就是 ActiveX Data Objects (ADO)。
二、在VC中使用ADO(开发步骤如下:)1、引入ADO库文件使用ADO前必须在工程的stdafx.h头文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。
代码如下所示://用#import引入ADO库文件#import "c:\program files\common files\system\ado\msado15.dll" \no_namespaces \rename("EOF" adoEOF")这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。
一个基于C_Builder和ADO技术的应用程序
第22卷第2期辽宁工学院学报V o l.22 N o.2 2002年4月JOU RNAL O F L I AON I N G I N ST ITU T E O F T ECHNOLO GY A p r.2002①文章编号:100521090(2002)022*******一个基于C++B u ilder和ADO技术的应用程序李丽萍(辽宁工学院计算机科学系,辽宁锦州 121001)摘 要:介绍了ADO的技术体系和它与C++Bu ilder的联系、编程工具Bo rland C++Bu ilder5,并探讨了ADO技术在C++Bu ilder5上的具体实现。
关键词:ADO;统一访问技术;C++Bu ilder;OL E DB;COM;ODBC中图分类号:T P311.52 文献标识码:BAn Application progam Based on C++Builder and ADOL I L i2p ing(D ep t.of Computer Science,L IT,J inzhou121001,Ch ina)Key words:C++B u ilder;ADO;OL E DB;COM;ODBC;in tegrated visiting techn iqueAbstract:In th is p ap er,the ADO system and its relati on sh i p w ith C++B u ilder,C++B u ilder5 are in troduced.H ereby the app licati on of ADO in C++B u ilder5is app roached. ADO是指A ctiveX数据对象(A ctiveX D ata O b ject,ADO),能够在用户端写一个应用程序(clien t app licati on),经过数据库的提供者(p rovider)存取和处理服务器(server)端的数据库数据,通过它可以实现高效、通用的数据访问。
使用ADO数据访问技术访问数据库
任务3:制作修改当前记录网页RecUpdata.asp
步骤1:在Dreamweaver中制作下图网页:
步骤2:
在“绑定”面板中新建一个记录集objrs。 单击“服务器行为”面板上的“+”按钮, 选择“记录集分 页/移至特定记录”命令。 进行相应设置, 单击“确定”按钮。将当前记录集的指针 移到合适位置,具体由前面传递的URL参数所决定。
单击“取消删除”按钮,打开“行为”面板,单击“+”按钮,选择“转到 URL”命令,在对话框中,选择URL:RecDisplay7_2.asp。
步骤3:
打开RecDisplay.asp网页,选中文字“删除”,单击“服 务器行为”面板上的“+”按钮,选择“转到详细页面”命令。 在对话框中进行相应设置,并单击“确定”按钮。由“书 号”传递URL参数。
Hale Waihona Puke 步骤3:打开RecDisplay.asp网页,选中文字“修改”,单击“服 务器行为”面板上的“+”按钮,选择“转到详细页面”命令。 在对话框中进行相应设置,并单击“确定”按钮。由“书 号”传递URL参数。
步骤4: 打开“绑定”面板。将记录集中相应字段, 拖 放到网页中对应的文本字段中,完成数据库字 段的绑定。
步骤5: 单击“服务器行为”面板上的“+”按钮,选择 “更新记录”命令。进行相应设置,单击“确 定”按钮。
任务4: 删除记录RecDelete.asp
步骤1:在Dreamweaver中制作下图网页:
步骤2: 在“绑定”面板中新建一个记录集。 将记录集中相应字段拖放到表格中相应位置, 完成数据库的绑定。 单击“服务器行为”面板上的“+”按钮, 选择“记录集分页/移至特定记录” 命令。 单击“服务器行为”面板上的“+”按钮,选择“删除记录”命令。 在“删除记录”对话框中,进行相应的设置,并单击“确定”按钮。
基于ADO方式的VC 数据库访问技术介绍
基于ADO方式的VC++数据库访问技术介绍一、ADO概述我们先介绍一下ADO,让大家对ADO有个大概的了解。
ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。
ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。
与ODBC相比,ADO 最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小及可移植性好。
下面我们结合具体的例子给大家讲解VC++中ADO是如何对数据库进行操作的。
二、系统设计本系统主要由用户登陆模块、用户操作界面模块和管理模块构成。
实现生物医学工程学生信息的管理。
三、建立数据库和数据表我们用Microsoft Office 2003中的Microsoft Access 2003来进行数据库与数据表的创建工作。
1、建立“shengyi”数据库(1)启动Microsoft Office 2000中的Microsoft Access 2000应用程序,再出现的对话框中创建一个新的数据库或打开一个已经存在的数据库。
(2)选择创建新数据库,即选择“空Access 数据库”选项。
(3)单击“确定”按钮后出现保存对话框,确定保存数据库的文件位置,将数据库命名为:shengyi。
(4)在数据表设计界面中,用户可以打开已经存在的数据表,也可以创建新的数据表。
单击“设计”菜单项,出现数据表设计器,用户可以设计一个新的数据表结构。
2、分别建立用户登陆表、年级表、学生个人信息表,如图1图1(1)class数据表的结构如图2图2(2)denglu数据表的结构如图3图3(3)personal数据表的结构如图4图4创建完成后可以在数据表中输入一些数据。
以在后面的登陆系统界面中体现其效果。
四、ADO与数据库的连接具体的建立过程相信大家都已经知道了,这里我们就不再详述了。
本系统建立的是但文档类型,工程名称为sheng。
1、引入ADO库文件使用ADO前必须在工程的stdafx.h头文件里用直接引入符号#import 引入ADO库文件,以使编译器能正确编译。
C+++Builder中使用ADOConnection+和+ADOQuery的使用
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select time_enter from zbstat where time_enter > :date_time"); //一定要注意这个date_time是代表的一个日期时间类型的数据
在Button1中写查询代码:
try
{
Query1->Close();
ADOQ->SQL->Text = "select * from Table1 where ProName = '"+Edit1->Text+"'";
Query1->Open();
}
发出错误信息,如果有人试图构建一个明确对象或调用虚函数。
在集成的调试器表达式,调用某些职能(包括隐式转换函数,构造函数,析构函数,重载运算符和内联函数)不支持。贴你具体的代码片段看看你就ADOConnection->Close();就行了.
另外ConnectionString赋值了没有啊?没看见有赋值语句啊.一会DataModule,一会又是DM,代码中到底是哪个?直接设置DataModule->ADOConnection->Connected=false
C++ Builder中使用ADOConnection 和 ADOQuery的使用(原创)C/C++ 2010-11-01 08:54:39 阅读34 评论0 字号:大中小 订阅
使用ADO访问数据库
一、ADO简介ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLEDB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB ,CO M不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。
本文将详细地介绍在VC下如何使用ADO来进行数据库应用程序开发,并给出示例代码。
二、基本流程万事开头难,任何一种新技术对于初学者来说最重要的还是“入门”,掌握其要点。
让我们来看看ADO数据库开发的基本流程吧!(1)初始化COM库,引入ADO库定义文件(2)用Connection对象连接数据库(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。
(4)使用完毕后关闭连接释放对象。
【1】COM库的初始化我们可以使用AfxOleInit()来初始化COM库,这项工作通常在CWinApp::InitInstance()的重载函数中完成,请看如下代码:BOOL CADOTest1App::InitInstance(){AfxOleInit();......【2】用#import指令引入ADO类型库我们在stdafx.h中加入如下语句:(stdafx.h这个文件哪里可以找到?你可以在FileView中的Header Files里找到)#import "c:\program files\common files\system\ado\msado15.dll"no_namespace rename("EOF","adoEOF")这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。
VC通过 ADO 访问数据库方法择优
VC通过 ADO 访问数据库方法择优Visual C++ 是一个编程语言,它可以通过 ADO(ActiveX 数据对象)来访问数据库。
ADO 是微软 Windows 上的一个内置数据库工具,它可以帮助开发者轻易地访问关系型数据库。
ADO 通过提供一套 COM(组件对象模型)接口,让开发者能够连接并操作不同类型的数据库,包括 Microsoft Access、Oracle 和 SQL Server 等。
以下是 VC 通过 ADO 访问数据库的方法择优描述。
1. 使用 ODBC 连接字符串ODBC(开放式数据库连接)是一个开放式标准,通过它,应用程序可以访问多个数据库,这些数据库可能来自于不同的供应商。
使用 ODBC 连接字符串可以通过 ADO 访问数据库。
它的优点是可以访问不同类型的数据库,但缺点是连接字符串比较麻烦,并且性能较差。
2. 使用 DSN 连接DSN(数据源名称)是一个名称,它通常与一个特定的数据库链接相关联。
使用 DSN 可以通过 ADO 访问数据库。
它的主要优点是连接字符串比较简单,但缺点是不能访问所有类型的数据库,并且性能稍差。
3. 使用 Jet 数据库引擎Jet 数据库引擎是一个文件级数据库,可以与ADO 一起使用,用于访问 Microsoft Access 数据库。
它的主要优点是可以访问Microsoft Access,不需要安装其他数据库软件,但缺点是不能访问其他类型的数据库,并且性能较差。
4. 使用 SQL Server OLE 数据提供程序SQL Server OLE 数据提供程序是一个为 SQL Server 设计的ADO 数据提供程序,它可以通过 ADO 访问 SQL Server 数据库。
它的主要优点是可以访问 SQL Server 数据库,但缺点是不能访问其他类型的数据库,并且需要安装 SQL Server 客户端软件(如 SQL Native Client)。
VC中使用ADO进行数据库开发的一些资料的整理
VC中使用ADO进行数据库开发的一些资料的整理1.导入ado库在StdAfx.h中,加入如下代码#import "c:\program files\common files\system\ado\msado15.dll" \no_namespace rename("EOF","adoEOF") renam e("BOF","adoBOF") 初试化在app的InitInstance中,加入AfxOleInit();(MFC)或者CoInitialize(NULL)如果用了CoInitialize退出时,要调用CoUninitialize()注意,如果在线程中也使用了com,那么在线程中也要用CoInitialize初始3.连接数据库_ConnectionPtr m_pAppConn;hResult = m_pAppConn.CreateInstance(_T("ADODB.Connection"));///创建Connection对象然后连接之m_pAppConn->Open("Provider=Microsoft.Jet.OLEDB.4.0 ; \Data Source = .\\DataBase\\aa.mdb","","",adModeUnknown);BOOL OpenConnect(){HRESULT hResult;CloseConnect();try{hResult = m_pAppConn.CreateInstance(_T("ADODB.Connection"));///创建Connection对象 if(SUCCEEDED(hResult)){m_pAppConn->Open("Provider=Microsoft.Jet.OLEDB.4.0 ; \Data Source = .\\DataBase\\aa.mdb","","",adModeUnknown);}}catch(_com_error e)///捕捉异常{CString errormessage;errormessage.Format(_T("连接数据库失败!\r\n错误信息:%s"),e.ErrorMessage()); AfxMessageBox(errormessage);hResult = -1L;}return (SUCCEEDED(hResult) ? TRUE : FALSE);}这里连接的数据库是access数据库,在工程目录下的DataBase\aa.mdb关键连接的字符窜,如果是accessProvider=Microsoft.Jet.OLEDB.4.0;Data Source=\\192.168.1.1\DataBase\aa.mdb; 这是局域网上的文件Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\\DataBase\\aa.mdb;本机上的如果是sql 2000Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=sa;Initial Catalog=aa;Data Source=192.168.1.1;数据库在192.168.1.1上,数据库名字是aa4.关闭连接BOOL CloseConnect(){HRESULT hResult=0;try{if(m_pAppConn!=NULL){if(m_pAppConn->State!=adStateClosed){hResult=m_pAppConn->Close();}m_pAppConn.Release();}}catch(_com_error e){_bstr_t bstrSource(e.Source());_bstr_t bstrDescription(e.Description());TRACE(_T("\n Source : %s \n Description : %s\n"),(LPCSTR)bstrSource,(LPCSTR)bstrDescription);hResult=-1L;}return (SUCCEEDED(hResult) ? TRUE : FALSE);}5.使用recodeset打开记录_variant_t RecordsAffected;_RecordsetPtr pRecordset = NULL;strSql = _T("SELECT field FROM table");pRecordset.CreateInstance(_uuidof(Recordset));pRecordset = pConn->Execute (_bstr_t(strSql) , &RecordsAffected , adCmdUnknown); 其中&RecordsAffected 可以获得有多少记录返回,这是记录的影像数目6.关闭记录集if(pRecordset != NULL && pRecordset->State){pRecordset->Close();pRecordset = NULL;}7.判断是否为空if (pRecordset->adoBOF && pRecordset->adoEOF) {//MessageBox("没有符合条件的记录存在!","提示");if(pRecordset != NULL && pRecordset->State){pRecordset->Close();pRecordset = NULL;}return;}8,从记录集取数据_variant_t var;pRecordset->MoveFirst();for(;!pRecordset->adoEOF;pRecordset->MoveNext()) {var = pRecordset->GetCollect(_T("field"));}9.几种常见数据的转换如果是字符窜的字段var = pRecordset->GetCollect(_T("field"));if(var.vt!=VT_NULL){str= (LPCTSTR)_bstr_t(var);}if(var.vt!=VT_NULL)判断是必须的,如果是空,转换会出错如果是int形int aa = atoi(str)_variant_t是个可变类型,支持很多种类型,10.使用command利用Command对象来执行SQL命令_CommandPtr m_pCommand;m_pCommand.CreateInstance("mand");_variant_t vNULL;vNULL.vt = VT_ERROR;vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数m_pCommand->ActiveConnection = m_pConnection;///非常关键的一句,将建立的连接赋值给它m_pCommand->CommandText = "SELECT * FROM users";///命令字串m_pRecordset = m_pCommand->Execute(&vNULL,&vNULL,adCmdText);///执行命令,取得记录集如果使用记录集的open来打开command对象.如果在Source 参数中传送 Command 对象并且同时传递ActiveConnection 参数,那么将产生错误。
C++builder数据库常用操作
C++builder数据库常用操作C++builder数据库常⽤操作1.连接SQLServer数据库ADOQuery1->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;\\ User ID=sa;\\Password=123456;\\Initial Catalog=UserInfo;\\ //数据库名Data Source=212.119.135.216";//服务器IP2.记住数据游标位置TBookmark SavePlace = ADOQuery1->GetBookmark();//⽤书签记住游标位置......查询数据库ADOQuery1->GotoBookmark(SavePlace);//指向原来的位置ADOQuery1->FreeBookmark(SavePlace);//释放书签这个游标是datasource的位置,⽤⽤的三⽤形位置的确没变。
但是数据源的指针在刷新后,却是指向第⽤条记录。
所以要先保存ADOQuery的recNo值,然后moveBy(recNo)到这个旧的位置,才能使ADOQuery在刷新后,仍然指向原来选中的位置。
3.连接Access2003数据库AnsiStringAdoConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+AppPath + "myDB.mdb;"+"Persist Security Info=False";ADOQuery1->ConnectionString = AdoConnString;若是带密码的数据库,连接字符串如下:AppPath = ExtractFilePath(Application->ExeName);AnsiStringAdoConnString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+AppPath + "myDB.mdb;"+"Persist Security Info=false;Jet OLEDB:Database Password=123456";ADOQuery1->ConnectionString = AdoConnString;4.更新数据库记录语句ADOQuery1->Active = false;ADOQuery1->SQL->Clear();ADOQuery1->SQL->Text = "insert into gpsRecordInfo(clientSerial,StartTime,enable,\\CustomID,CustomName,middleManName)\\values('"+Edit1->T ext+"',\\cast('"+Now()+"' as datetime),\\"+(int)GpsEnable+",\\'"+Edit11->Text+"',\\'"+Edit12->Text+"',\\'"+Edit13->Text+"')";ADOQuery1->ExecSQL();这条语句涉及到更新nchar,datetime,bit(即bool)型字段的⽤法。
c++builder6控件关联数据库字段
c++builder6控件关联数据库字段
1、学会建立程序、建立程序的窗体、学会在窗体上放控件。
2、找到adodataset控件,它一般在dbgo控件分组中。
3、找到adodataset控件的属性设置中“connectionstring”,对它边上的小按钮点一下,就会出来一个小向导窗,在这个小向导窗中你可以设定好你的sql server的相关参数,如ip、id、pass等,并进行测试联接。
4、近似操作,找到adodataset控件的属性设置“commandtext”对它边上的小按钮点一下,就会出来一个小向导窗,在这里你可以设置你要向你的sql server发送的sql指令。
5、以上的做完了,你向sql server服务器发送指令的工作就完成了,接下来是如何接收服务器返回的数据集。
6、接收返回的数据集你需要用到datasource,它一般在data access控件组中,它的作用是把adodataset返回的数据集向别的控件发送,它就是一个中转者。
7、展现数据最简单的是使用dbgrid,它通常在data controls 控件组中,它的作用是直接向用户展示数据。
8、拖一个ADOConnection和一个ADOQuery,一个DBGrid,一个DataSource。
9、在工程目录下建立一个ACCESS数据库文件。
10、设置ADO Connection属性。
11、设置ADOQuery Connection属性为ADOConnection元件名
12、设置DataSoucre元件的DataSet属性为ADO Query元件名
13、设置DBGrid DataSource属性为DataSoucre元件名。
在VC_中基于ADO组件的数据库编程技术
在VC ++中基于ADO 组件的数据库编程技术昝风彪(青海民族学院计算机系,青海西宁 810007)摘 要:利用ADO 组件提供的对象及其接口,更容易实现数据库应用程序的升级和协同开发。
本文介绍了ADO 组件模型及编程模块,探讨了在VC ++中利用组件来开发数据库应用程序的技术。
关键词:ADO 组件;COM ;数据库中图分类号:TP 311.13 文献标识码:A 文章编号:1001-7542(2003)03-0071-04在数据库编程中已经有象ODBC 、O L EDB 、DAO 等访问技术,但是利用ADO 组件提供的对象及其接口,实现更高层次的组件封装,以实现更加具体的功能,将组件的可操作性提高到新的水平。
1 ADO 组件概述1.1 COM 组件原理COM 是一种以组件为发布单元的对象模型,这种模型使多种软件组件可以通过一种通用的方式进行交互。
COM 提供了组件之间进行交互的规范,也提供了实现交互的环境,因为组件对象之间交互的规范不依赖于任何特定的语言,所以COM 也是不同语言协作开发的一种标准。
1.2 ADO 组件模型ADO 是采用客户/服务器体系结构的COM 模型,对象和客户之间的相互作用是作为客户/服务器模型里的元素展开的,ADO 组件同客户程序的协作方式有进程内协作和进程外协作,而进程内协作是组件与客户程序在同一个组件内进行,拥有共同的地址空间,其效率与同一进程里的任何C ++函数没有区别,而进程外协作是组件运行在独立地址空间,不与客户程序发生数据共享。
1.3 ADO 编程模块ADO 包装了D L EDB 的许多功能函数并使开发者能够在所有的语言中访问数据源中各种各样的数据。
ADO 编程包括制作ADO 类库的调用,ADO 库按图1层结构而建立的:图1●每个ADO 连接对象都使用一个数据源名字,一个用户ID 和口令来建立起到一个数据库的连接。
●通过执行一些SQ L 语句,这些SQ L 语句返回一个已含有数据行的数据库光标,形成每个ADO 记录集,可以检查到这些行,也可以通过ADO 记录集更新它们。
C++ Builder中基于ADO的数据库访问方法
C++ Builder中基于ADO的数据库访问方法
张静;董英斌
【期刊名称】《气象与环境科学》
【年(卷),期】2007(030)B09
【摘要】介绍了C++ Builder中ADO数据库访问控件的属性及其使用方法,并以Access 2000数据库为例,给出了如何利用ADO控件对数据记录进行添加、查询的操作方法。
【总页数】3页(P156-158)
【作者】张静;董英斌
【作者单位】河南省气象培训中心郑州450003;华北水利水电学院郑州450008【正文语种】中文
【中图分类】TP311.132.4
【相关文献】
1.一个基于C++ Builder和ADO技术的应用程序 [J], 李丽萍
2.C++ Builder由Excel数据导入Paradox表的实现 [J], 黄秀成
3.在C++ Builder中创建加密PARADOX数据库 [J], 汤子东;刘素芳
4.VB中基于ADO的数据库访问方法 [J], 莫礼平;张兆海
5.C++ Builder中基于ADO的数据库访问方法 [J], 张静;董英斌
因版权原因,仅展示原文概要,查看原文内容请购买。
c+++builder连接SQL+Server+数据库的AOD连接的实例
闲的无聊,为大家做个编写软件连接数据的实例供大家参考。
一.设置数据库的连接1.首先建立一个Application,建好和可以看到一个Form窗口2.在Form窗体上放置ADO 控件组中的ADOConnection控件3.在ADOConnect控件上双击设置数据库的连接4.选择Use Connection String选项点击Build按钮弹出数据库链接属性窗口,在这个窗口中选择链接驱动,这儿一SQL Server 数据库为例,选择Microsoft OLE DB Provider for SQL Server5.然后点击下一步选择或输入SQL Server服务器的名称,设置登录数据库的信息,并选择要连接的数据库的名字,完成上述设置后点击测试连接,如果弹出测试连接成功,则说明配置正确,点击确定完成配置6.点击OK完成连接数据库的配置二.操作所连接的数据库数据库的操作就4种,增、删、改、查,要执行这4种操作的控件常用的有两种ADOQuery 和ADOStoredProc,前一种是执行SQL 语句的,后一种是执行存储过程的,如果要将数据以表格的形式显示出来则需要使用Grid控件,这里以Data Controls中的DBGrid为例,需要配合使用的有Data Access中的Data Source ,具体设置如下1.在Form中放置以上控件2.配置各控件的属性,这里只设置主要的属性设置ADOQuery控件的Connection属性为ADOConnection控件的名字,设置DataSource控件的DataSet属性为ADOQuery控件的名称设置DBGrid控件的DataSource为DataSource控件的名称在设置好DBGrid控件列属性后就,在ADOQuery的SQL属性中写SQL语句就可以访问数据库,并可以将数据显示到DBGrid里了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第30卷 增刊气象与环境科学Vol .30Supp l .2007年9月Meteor ol ogical and Envir on mental SciencesSep.2007收稿日期:2007-04-12;修订日期:2007-07-26作者简介:张静(19752),女,江苏江都人,讲师,学士,从事气象教育培训工作.E 2mail:zjx m751123@s ohu .comC ++Builder 中基于ADO 的数据库访问方法张 静1,董英斌2(1.河南省气象培训中心,郑州450003; 2.华北水利水电学院,郑州450008) 摘 要:介绍了C ++Builder 中ADO 数据库访问控件的属性及其使用方法,并以Access 2000数据库为例,给出了如何利用ADO 控件对数据记录进行添加、查询的操作方法。
关键词:C ++Builder;ADO;数据库访问中图分类号:TP311.132.4 文献标识码:A 文章编号:1673-7148(2007)增刊-0156-03引 言ADO (ActiveX Data Object )技术是微软公司为了开发数据库应用程序而提供的新接口,它是建立在OLE DB 基础上的数据库访问技术[1]。
其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。
Borland C ++Builder 6.0是美国I np rise 公司面向对象的结构化设计语言软件开发工具,具有交互式可视化编程环境,可利用其拖放技术便捷地生成用户界面,同时,C ++Builder 提供了许多可视化的数据库编程控件,可支持各种流行的桌面数据库系统[2]。
以下介绍C ++Builder 中提供的ADO 控件对数据库的访问方法,并以MS Access 2000数据库为例给出访问数据库的具体方法。
1 C ++Builder 提供的ADO 数据库访问控件数据库访问控件是C ++Builder 中用来建立应用程序和数据库之间联系的工具。
ADO 数据库访问控件允许应用程序通过ADO 技术访问数据库,将数据库的信息传递给用户接口,并通过ADO 技术将用户接口的数据反馈给数据库,因此,可以利用ADO 数据库访问控件,通过设计用户接口和数据库信息进行交互与联系[3-5]。
以C ++Builder 6.0版本为例,它所提供的ADO 数据库访问控件主要有ADOConnecti on 、ADOCommand 、ADODataset 、ADOTable 、ADOQuery 等。
其中,ADOTable 、ADOQuery 控件通过设置Con 2nectString 属性直接与数据库连接。
不同之处在于ADOTable 连接数据库后可以直接设置Table Na me属性与数据库中的表建立直接的关联,而ADOQuery 则通过S QL 属性设置S QL 语句与数据库中的表建立关联。
ADOCommand 控件通过设置ConnectString 属性直接与数据库连接,然后再通过CommandText 属性设置S QL 语句进行数据库访问操作。
ADODataset 是一个数据集控件,它表示的是来自基本表或命令执行结果的记录全集。
所有ADO 2Dataset 控件均使用记录(行)和字段(列)进行构造。
ADODataset 控件的功能是操作来自数据库的数据,当使用ADO 时,通过ADODataset 控件可对几乎所有的数据进行操作。
但是,任何时候,ADODataset 控件所指的当前记录均为集合内的单个记录。
ADODataset 控件可以实现以下功能:指定可以检查的记录,移动记录,添加、更改或删除记录,通过更改记录更新数据源。
2 ADO 访问Access 数据库实例本实例采用目前应用广泛的MS Access 2000数据库,它所对应的Jet OLEDB Engine 版本为4.0。
数据库包含一个Sa mp le Data (测点采集数据)表,其结构见表1(表中3号表示该字段为主键值)。
增刊张 静等:C ++Builder 中基于ADO 的数据库访问方法表1 测点采集数据表序号字段名含义类型1sTi m e 采样时间3浮点型2chNum 测点编号长整型3s DateTi m e 采样时间字符型4Freq 采样频率短整型5pValue振动幅值浮点型2.1 用ADOTable 控件对数据库表执行插入操作插入操作的程序界面如图1所示。
图1 插入操作的程序前面板插入操作的程序代码为://////////定义变量////////////T DateTi m e sTi m e;//采样时间fl oat nowSTi m e,pValue;//当前时间,振幅值int chNu m;//测点编号///////////获得数据/////////////获得测点编号ch Nu m =DMod1→ADOQuery1→FieldBy Na me ("ch Num ")→A sI nteger;//获得采样时间sTi m e =Now ();//采样时间转换nowSTi m e =double (sTi m e );nowTi m e =AnsiString (sTi m e );//获得振动幅值pValue =Edit1→Text .ToDouble ();////////////插入操作//////////////数据表关闭DMod1→ADOTable1→Cl ose ();//指定表的连接字符串(包括Pr ovider 等信息)DMod1→ADOTable1→Connecti onString = ″Pr ovider =M icr os oft .Jet .OLE DB.4.0;Data Source =Student .mdb;Persist Security I nf o =False";//指定表的名称为“Sa mp le Data ”D Mod1→ADOTable1→Table Na me ="Sa mple Data";//数据表打开DMod1→ADOTable1→Open ();//设置数据表为插入状态DMod1→ADOTable1→I nsert ();//插入测点编号DMod1→ADOTable1→Field By Na me ("chNu m ")→A sI nteger =chNum;//插入采样时间(字符串型)DMod1→ADOTable1→FieldBy Na me ("s Date 2Ti m e")→A sString =nowTi m e;//插入采样时间(浮点型)DMod1→ADOTable1→FieldBy Na me ("sTi m e")→A sFl oat =nowSTi m e;//插入振动幅值DMod1→ADOTable1→Field By Na me ("pValue")→A sFl oat =pValue;//插入采样频率DMod1→ADOTable1→Field By Na me ("Freq")→A sI nteger =3200; try { //数据表刷新 DMod1→ADOTable1→Refresh ();}catch (...)//数据表关闭 DMod1→ADOTable1→Cl ose ();2.2 用ADOQuery 控件对数据库表执行查询操作查询操作的程序界面如图2所示。
图2 查询操作的程序前面板751气象与环境科学第30卷查询操作的程序代码为://定义测点编号变量int chNu m;//获得测点编号ch Nu m=DMod1→ADOQuery1→FieldBy Na me ("ch Num")→A sI nteger;//获得传感器类型senType=DMod1→ADOQuery1→FieldBy Na me ("senTy pe")→A sI nteger;//设置查询字符串strS QL="select pValue fr om sa mdata where ch2 Nu m=";strS QL=strS QL+ch Nu m;//ADOQuery控件关闭DMod1→ADOQuery1→Cl ose();//ADOQuery清除原有S QL语句DMod1→ADOQuery1→S QL→Clear();//ADOQuery添加新S QL语句DMod1→ADOQuery1→S QL→Add(strS QL);//执行查询操作DMod1→ADOQuery1→Active=true;//将查询到的振幅值用图形曲线显示//定义变量int i=1;fl oat pValue;//清除原有曲线Series1→Clear();//循环读取振动幅值并画图while(!DMod1→ADOQuery1→Eof){ //获得振动幅值 pValue=DMod1→ADOQuery1→Field2 By Na me("pValue")→A sFl oat; //画曲线上一点 Series1→AddXY(i,pValue,"",cl Red); i++; //移动到下一条记录 DMod1→ADOQuery1→Next();}3 结 语通过以上分析可以看出,在C++Builder中利用ADO技术访问数据库是极其方便和灵活的。
文中只是以MS Access2000数据库为例说明了采用ADO技术访问数据库的方法,它同样可适用于其他如O racle、MS S QL Server、MyS QL等数据库。
参考文献[1]同志工作室.C++Builder5.0数据库开发实例[M].北京:人民邮电出版社,2001:271-289.[2]Kent Reisdor ph.C++BU I L DER4技术内幕[M].徐新华译.北京:人民邮电出版社,2000:411-453.[3]李中凯,魏修亭,唐文静.用ADO控件实现VB与S QL Server2000的连接[J].电脑开发与应用,2004,17(5):16-17.[4]王井阳,张晓明,秦敏,等.在VC中利用ADO技术操作数据库中的BLOB数据[J].计算机应用研究,2004,21(10):79-81. [5]王聪华.ADO访问数据库实例剖析[J].计算机应用研究,2002,19(5):159-160.M ethod of Access to Dat abase Based on ADO i n C++BuilderZhang J ing1,Dong Yingbin2(1.Henan Meteor ol ogical Training Center,Zhengzhou450003,China;2.North China University of W ater Conservancy and Electric Power,Zhengzhou450008,China) Abstract:This paper discusses the method of access t o database based on ADO in C++Builder.I ntr oduce the p r operty and using method of the ADO database contr ol in C++Builder.Give an exa mp le of database accessing by using Access2000database.This exa mp le de monstrates how t o insert and query records in a database with ADO contr ol.Key words:C++Builder;ADO;database accessing851。