Using ADO from C++

ADO读取Excel的简单例子 一、简单说明: 工程名字ADO_Excel,类型是console app, 非empty有预编译头stdafx.h。 编译说明: 1.确保C盘下面路径有msado15.dll,没有安装office2007: #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF"," 阅读详情
Environment:  Visual C++ 6

Microsoft ActiveX Data Object (ADO) provides an easy way to data access and manipulation that is independent of data stores, tools, and languages. This flexibility and easy-to-code facility makes ADO the perfect choice for developers. ADO is implemented with Component Object Model (COM) interfaces. Unlike VB programmers, C++ programmers must know the details of using COM for using ADO. So, using ADO from C++ is still very complex. But, it is possible to get an easy ADO programming model from C++, which can help to hide the details of using COM. In this article, I demonstrate a C++ class to do this that encapsulates the ADO connection object. You can apply same technique for encapsulating other ADO objects.

Adding ADO Support to a C++ Program

One way to add ADO support to your C++ program is to import ADO type library information. The type library for the current ADO is contained within the ADO DLL, msado15.dll. You can import this type library by importing msado15.dll by using the #import directive:

#import "c:/Program Files/Common Files/System/ADO/msado15.dll"
        rename("EOF", "EndOfFile")

Of course, you may need to change the path of msado15.dll according to the location where the file is found on your machine. Because I don't mention the no_namespace option, the directive generates a type library header (generally msado15.tlh) that contains typedef declarations, smart pointers for interfaces, and enumerators under the ADODB namespace. The rename macro tells the preprocessor to replace the EOF constants by EndOfFile. ADO defines nine objects (Connection, Command, Recordset, Record, Stream, Parameter, Field, Property, and Error) and four collections (Parameters, Fields, Properties, and Errors). The #import directive generates smart pointer-type declarations for all the ADO objects. For example, a variable that points to a _Connection object is of the _ConnectionPtr type. So, if you want to refer to the _Connection object, you have to declare a variable of the _ConnectionPtr type.

ADODB::_ConnectionPtr Cnn;

Now, create a C/C++ header file named .Database.h. and add the codes given below:

#import "c:/Program Files/Common Files/System/ADO/msado15.dll"
        rename("EOF", "EndOfFile")
typedef ADODB::_RecordsetPtr  RecPtr;
typedef ADODB::_ConnectionPtr CnnPtr;

Notice that all typedef declarations, smart pointers for interfaces, and enumerators are in msado15.tlh. The compiler automatically generates this file after compiling the above #import directive. You don't need to include this file because C++ is responsible for this file. Now, we are ready to declare a class, which encapsulates the ADO Connection object. Let's write the code for the class that encapsulates the ADO Connection object.

class Database
{
public:
   CnnPtr m_Cnn;
   Database();
   ~ Database();
   bool Open(char* UserName, char* Pwd, char* CnnStr, char* ErrStr);
   RecPtr Execute(char* CmdStr);
   bool Close();
};

Actually, the ADO Connection object has many methods. But, to simplify the code, I declare only three methods (Open, Close, and Execute) to give access to three methods of the connection object: Open establishes a physical connection to a data source, Execute executes a command or stored procedure on the established connection, and Close breaks the established connection.

About the Author
computer science & engineering, CUET

Go to page: 1  2  Next

Downloads

Visual c++ 6.0 ADO access <br />ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。<br />_ConnectionPtr接口返回一个记录集或一个空指针。<br />通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。<br />使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。<br />通常同Cdatabase一样,使用它创建一个数据连接,然后使用其它对象执行数据输入输出操作。<br />_Comman 阅读详情

相关推荐

VC++中ADO封装类的实现与应用

活动数据对象(ActiveX Data Objects,ADO)是微软提供的一套用于数据访问的编程接口,它以对象模型的形式存在,允许开发者通过编程代码访问和操作数据库。ADO技术基于COM(Component Object Model)标准,可以访问各种类型的数据源,如关系型数据库、文件系统等。在ado2.h头文件中,我们可以发现一系列预定义的常量和类型定义。这些定义为使用ADO技术进行编程提供了基础。

weixin_42476987的博客 941

no database interfaces are installed

linhaoran200025的博客 1775

C++中利用ADO技术连接Oracle数据库的实践指南

ADO(ActiveX Data Objects)是微软公司开发的一种用于存取数据源的应用程序接口。它允许开发者通过编程来访问关系型数据库和非关系型数据库。ADO基于COM(Component Object Model)技术,旨在提供一种轻量级、易于使用的数据访问方法。其广泛应用于需要进行数据库交互的应用程序开发中,特别是对于Web应用程序而言,ADO提供了一种高效的数据交互方式。

weixin_33622085的博客 1219

数据库安装成功之保证

环境: ------------------------------------------------- $ lsb_release -a LSB Version:    :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch

corpse2010的专栏 886

C/C++程序中ADO数据库操作详解

在这一章节中,我们将深入了解ActiveX Data Objects (ADO) 对象模型的基础知识。ADO是一个高级的数据库访问技术,允许用户通过编程语言如VBScript、JavaScript、C++和.NET支持的多种语言,以统一的方式处理多种数据源。它的主要目标是简化应用程序访问数据库的过程,提供一种与存储数据的方式无关的访问机制。我们将首先探讨ADO对象模型的构成,重点介绍其核心组件如Connection、Recordset、Command等对象及其属性和方法。

weixin_31749299的博客 1140

C++Builder中ADO控件读写SQL Server数据库

在现代软件开发中,数据库操作是不可或缺的一部分。C++Builder作为一款功能强大的集成开发环境(IDE),为开发者提供了一套直观且强大的数据库开发工具。它允许开发者在不牺牲性能的情况下,快速地构建数据库相关应用程序。活动数据对象(ActiveX Data Objects,简称ADO)是一种易于使用的数据访问技术,允许脚本和编程语言与数据源进行交互。它基于COM组件,支持多种数据源,比如SQL Server、Oracle和MySQL等。ADO的优势主要体现在以下几个方面:简单易用。

weixin_36173034的博客 1123

rpm package installed problem

rpm package installed problem Public key for “XXX”.rpm is not installed rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

JXCypress 480

C++实现ADO数据库连接简易教程

ActiveX Data Objects (ADO) 是一种允许应用程序通过编程访问数据库的技术。它通过一系列易于使用的对象模型,实现了对数据库的访问和操作,成为了数据库编程领域中广泛采用的一种标准。ADO技术的核心在于它的几个主要对象:Connection对象:用于建立与数据源的连接。Command对象:允许执行SQL命令或存储过程。Recordset对象:用来存储查询结果集,并进行数据操作。

weixin_35903223的博客 760

Visual C++中的ADO编程

 摘  要:本文介绍了微软推出的以ActiveX技术为基础的ADO数据存取技术,分析了ADO的工作原理,并用Visual C++说明了ADO数据访问技术的实现方法。关键字:ADO;连接对象;OLE DB;数据存取;记录集 ADO(ActiveX Date Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术。ADO技术基于C

湛蓝的天空下有一道美丽的影子 2294

免安装PowerBuilder9.0

适用于远程协助客户处理问题,无需安装的PB开发工具

时钟MUX电路结构的时序约束方法分析

一、最简单的设置 对于时钟MUX而言,其output_pin上的时钟在任一时刻一定唯一。可以使用如下命令: set_clock_exclusivity -output output_pin [-type mux | user_defined] ...

Jackiezhang1993的博客 1万+

C++ 通过ADO连接Oracle数据库

背景 接触C++以来,因为之前学的java做Web时经常要和数据库打交道,所以也就一直想用C++来操作数据库。之前也听过ODBC数据源的方法听说比较麻烦,C++用ADO的方法连接数据比较方便。 下面就是具体的步骤和代码了。 1.导入ADO的库 使用ADO的话必须要导入它的库,这语句放到头文件.h中,因为我这里是用的MFC程序建的工程,所以我放在stdafx.h头文件中 //导入ADO的库

六月心悸 5138

Abaqus6.14.4 Linux详细图文安装教程

Abaqus6.14.4 Linux详细图文安装教程 20170409 1. 准备安装环境 1.1 安装CentOS 6.5,更新库 1.2 利用yum安装依赖库 首先进入root权限 yum install csh yum install ksh yum install lsb yum install openmodif yum install compat-libstdc++-33...

snuhxm的博客 7841

ADO 在C/C++中的基本使用

1、什么是ADO Microsoft ActiveX 数据对象(ADO)允许客户端应用程序通过 OLE DB 提供程序访问和处理来自各种源的数据。 它的主要优点是易于使用、高速、低内存开销和较小的磁盘空间。 ADO 支持用于生成客户端/服务器和基于 Web 的应用程序的关键功能。 2、ADO基础知识 ADO为开发人员提供了一个功能强大的逻辑对象模型,可通过OLE DB 系统接口一编程的方式访问、编...

qq_41810721的博客 1274

Excel药品说明书数据库:从零开始搭建医药数据查询系统(附完整模板)

本文详细介绍了如何从零开始搭建Excel药品说明书数据库,提供完整的医药数据查询系统模板。涵盖数据库架构设计、数据清洗标准化、智能查询系统搭建及维护优化,帮助医药从业者高效管理药品信息,提升查询速度和准确性。

weixin_28327051的博客 233

LIN 协议测试

如下图,使用PicoScope示波器抓取报文Id为0x18的波形,数据场Byte1的长度为519.994μs,Byte1共10bit,计算位时间:tBit= 519.994/10 = 51.9994μs,符合预期。■ 唤醒信号是一个250μs到5ms的显性电平,发送唤醒信号的节点发送唤醒信号后150ms~250ms没有收到其他节点的唤醒信号,发送唤醒信号的节点发送新的唤醒信号。对于LIN主节点,检查发送的帧头长度是否符合设计要求,对于LIN从节点,检查从节点能否正确响应设计范围之内的帧头长度。

m0_63902994的博客 5929

ado.cpp

 ////  MODULE: Ado.cpp//// AUTHOR: Carlos Antollini ////  mailto: cantollini@hotmail.com//// Date: 11/19/2002//// Version 2.09//#include "stdafx.h"#include "ado.h"#if defined(UNICODE) || defined(_UN

2161

国产数据库全解析:openGauss、OceanBase、TiDB与KingbaseES的核心优势与应用场景指南

本文将深入剖析openGauss、OceanBase、TiDB和KingbaseES这四款主流国产数据库的核心内容,并针对国产化过程中给出使用建议,以帮助企业根据自身需求选择合适的数据库解决方案。国产数据库在性能、扩展性、兼容性、安全性等方面展现出强大实力,能够满足不同行业、不同场景的需求。企业在进行国产化过程中,应充分考虑业务特点、技术栈、团队能力等因素,结合上述分析,选择最适合自身的国产数据库产品。随着国产数据库技术的持续发展与生态完善,它们将成为推动企业数字化转型、保障数据安全的重要力量。

java专栏 8779

C++合并OCI/OCCI 比 C++合并ADO 快十倍

  引言   Oracle以其优越的稳定性和卓越的性能在众多领域里有着广泛的应用,其高性能是Oracle优于其他数据库的关键因素。然而影响终端应用程序的性能不只是Oracle服务程序及硬件环境,应用程序的开发语言和开发方式也有着重要的影响。  目前,可以在多种开发语言中开发Oracle应用程序,比如可以在VB、Delphi等高级开发语言中开发,可以以C++开发,也可以以Java

zhoubl668的专栏:远帆,梦之帆! 3077

ncode控件使用总结

数据格式txt转s3t #HEADER #TITLES Absolute_Time,COG_Ax,COG_Ay,COG_Az,LF_SPINDLE_AZ #UNITS ,g,g,g,g, #DATATYPES Double,Float,Float,Float,Float #DATA 2. 导入s3t数据 3. 输入数据控件 直接拖入数据源或者添加控件数据 4.

技术联盟 2005

Claude Code 处理长任务 + Cursor 专注交互:双栈协作的 3 种分工场景与响应提速 35% 实测

揭示 Claude Code 与 Cursor 在 AI 编程中的本质分工:Claude Code 作为离线式架构师处理跨文件、带约束的长链路重构(如单体拆微服务),Cursor 作为现场交互工程师专注秒级局部编辑;提出按任务切片动态切换的三种工程化协作场景,并给出结构化上下文构建、约束型 Prom

weixin_28728443的博客 122

使用Visual C++ Extensions实现ADO数据绑定

前言:在使用ADO和Visual C++进行数据库程序开发时,程序员会面临一项复杂的任务,那就是对VARIANT类型字段的处理。Visual C++ Extensions for ADO提供了IADORecordBinding接口,使用该接口程序员可以绕开VARIANT而直接把数据库的数据读取到本地的C/C++类型数据中。 ADO提供了IADORecordBinding接口,使用该接口程序员可以

niushitang的专栏 1595

学Simulink——基于软开关与高频变换的整流器系统场景实例:移相全桥ZVS整流器在轻载条件下的效率优化

本文以Simulink为平台,详细介绍了移相全桥ZVS整流器在轻载条件下的建模与优化方法。通过六个步骤系统讲解了从项目创建到仿真运行的全过程,重点分析了移相全桥拓扑结构、ZVS检测逻辑设计及轻载特性。结果显示,传统移相全桥在轻载时ZVS失效导致效率下降(<88%)。针对此问题,提出了动态频率调整、不对称半桥模式等优化策略。该案例为理解软开关技术、提升电源效率提供了实用建模方法和优化思路。

xiaoheshang_123的博客 116

C++通过ADO读写Excel文件

介绍 有时候我们需要从excel表格里导入、导出数据。其中一种方式就是通过ADO的方式。在这里,excel文件被当作数据库来处理,该方式不需要客户端安装Microsoft Excel,速度也够快。 连接字符串 这里有两种类型的连接字符串,第一种是针对xls格式的: Provider=Microsoft.JET.OLEDB.4.0;Data Source=data.xls;Extended...

897

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: Universal STL-Based Template String Class
下一篇: 防止Visual C++应用程序缓冲区溢出
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值