专栏首页MasiMaro 的技术博文Windows数据库编程接口简介

Windows数据库编程接口简介

数据库是计算机中一种专门管理数据资源的系统,目前几乎所有软件都需要与数据库打交道(包括操作系统,比如Windows上的注册表其实也是一种数据库),有些软件更是以数据库为核心因此掌握数据库系统的使用方法以及数据库系统编程接口的使用方法是程序员非常重要的基本技能之一。所以我花了一定的时间学习了在Windows平台上使用COM接口的方式操作数据库。这段时间我会将自己学习过程中掌握的知识和其中的一些坑都发布出来,供个人参考,也方便他人学习 现在常见的DBMS主要有ORACLE、Sybase、Informix、DB2、Sql Server、Access、Visual Foxpro、MySql。由于目前我主要是在学习Windows平台上的编程技巧,所以这系列的内容将会以Windows平台为主,所以数据库选择了Sql Server,编程接口主要是ADO和OELDB.

Windows平台常见的数据库编程组件

目前Windows平台上主要使用的是ODBC、DAO、RDO、ADO、ADO.NET、OLEDB。 其他的数据库编程接口由于被微软弃用或者使用人数较少,等等原因我并没有关心他们,目前主要学习的是OLEDB和ADO编程。由于ADO是针对OLEDB进行的在封装的ActiveX控件,掌握了OLEDB,再学习ADO就没有什么难度了,所以我将重点放在OLEDB上,而对于ADO只会简单的进行简单的步骤说明。

OLEDB的基本概念

  1. 数据提供者和数据消费者:在OLEDB中将接口两端的软件分别称为数据提供者(一般指数据库这一端,着重与数据的组织存储)和数据消费者(指应用程序这一端,着重与数据库数据的展示与使用)。OELDB是一种针对两头的编程接口,它为数据提供者和消费者分别准备了一组接口,数据提供者主要实现一些接口,用于将数据库中的数据输出到应用程序或者根据应用程序的指令完成数据的操作,而数据消费者主要使用其中提供的编程接口,实现数据的获取或者更新等操作。(我觉得他们二者之间的关系就像是有一套标准的COM接口,一个负责调用,一个负责实现)从本质上说,OLEDB其实就是一个标准的数据库与应用系统间的数据标准交换接口,它的好处就是高效,通用和灵活。
  2. 数据源:一般来讲数据源可以理解为数据提供者或者理解为各个DBMS,但是在ADO中,数据源可以是文本文件,excel或者xml文件

MSDAC简介

MSDAC(Microsoft Data Access Components)微软数据库访问组件,目前MSDAC上主要有ADO、OLEDB、ODBC 在Windows的MSDN中提供了完整的MSDAC帮助文档,在MSDN中,选择“目录”-->"Win32和COM开发"-->"Data Access And Storage"-->"Windows Data Access Components SDK"中。它的下层目录就是各种组件的详细文档,它的整体结构如下:

OLEDB编程的基本思路

OLEDB编程的基本步骤如下:

  1. 首先创建数据源对象,指定链接数据库的相关属性,链接到数据库
  2. 接着创建会话对象
  3. 根据回话对象创建出Command对象
  4. 利用Command对象执行SQL语句,并返回结果集对象
  5. 读取结果集对象中的数据,并输出
  6. 最后关闭所有对象接口,关闭数据库连接 这些东西在后面的内容中会一一进行详细的说明,这篇博文就这样只开个头。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java 学习笔记(16)——Java数据库操作

    JDBC——Java Database connecting Java数据库连接;本质上JDBC定义了操作数据库的一套接口,作为应用程序的开发人员来说只需要创建...

    Masimaro
  • 数据更新接口与延迟更新

    title: 数据更新接口与延迟更新 tags: [OLEDB, 数据库编程, VC++, 数据库] date: 2018-02-12 14:29:35 ...

    Masimaro
  • WinSock 重叠IO模型

    title: WinSock 重叠IO模型 tags: [WinSock 模型, 网络编程, 重叠IO模型] date: 2018-06-29 20:26:...

    Masimaro
  • 腾讯云数据库智能管家 DBbrain介绍

    TencentDB for DBbrain(以下简称DBbrain)中文名数据库智能管家,是一款智能诊断和优化数据库的产品,为用户提供实时的数据库防护,在出现故...

    腾讯云数据库 TencentDB
  • Oracle中泄露“天机”的TNS

    数据库的安全是长期存在的问题。在目前大量的数据泄露事件以及漏洞面前,大家看到的大都是SQl注入、越权操作、缓冲区溢出等这些具体漏洞。往往却忽视了造成这些问题的前...

    FB客服
  • 连载 | 深入浅出理解云数据库,年薪百万DBA之路 · 第三回

    为帮助开发者更好的了解和运用数据库,腾讯云数据库团队特出品《深入浅出理解云数据库》系列文章,从数据库的基本概念到云数据库特性及应用,从数据库基础原理知识到腾...

    腾讯云数据库 TencentDB
  • 两组有趣的数据库调研结果

    谁来决定数据库技术选型?从这篇数据中我们可以发现,在企业进行数据库技术选型中,不同角色的权重不同。调研结果揭示架构师>开发者>DBA>管理者,这与我之前认为的管...

    用户5548425
  • 巨杉数据库 CTO 王涛:新一代分布式数据库

    2019数据技术嘉年华于11月16日在京落下了帷幕。大会历时两天,来自全国各地上千名学术精英、数据库领袖人物、数据库专家、技术爱好者在这里汇聚一堂,围绕“开源 ...

    数据和云
  • Oracle 数据库名、实例名、Oracle_SID

    本文参考自ORACLE 数据库名、实例名、ORACLE_SID的区别,纯属读书笔记,加深记忆 在ORACLE7、8数据库中只有数据库名(db_name)和数据库...

    郑小超.
  • MySQL基础教程:数据的导入导出

    学会数据库的导入导出非常重要,为什么呢?向下看。首先您可以把数据转储进行备份和还原,以便在紧急情况下恢复数据库的旧副本。您还可以把数据迁移到新服务器或开发环境。

    穿鞋跑得快

扫码关注云+社区

领取腾讯云代金券