ODBC API简介

1.      数据类型:

通过SQLGetTypeInfo函数来获取ODBC 3.0支持的数据类型信息。由SQLGetTypeInfo返回的数据类型是数据源所支持的数据类型。

SQLRETURN SQLGetTypeInfo(

     SQLHSTMT      StatementHandle,

     SQLSMALLINT   DataType);

其中DataType类型为SQL Data Types的一种,具体参见

https://msdn.microsoft.com/en-us/library/ms710150(v=vs.85).aspx

同时需要了解SQL数据类型与C数据类型的对应关系:


C type identifier


ODBC C typedef


C type


SQL_C_CHAR


SQLCHAR *


unsigned char *


SQL_C_SSHORT[j]


SQLSMALLINT


short int


SQL_C_USHORT[j]


SQLUSMALLINT


unsigned short int


SQL_C_SLONG[j]


SQLINTEGER


long int


SQL_C_ULONG[j]


SQLUINTEGER


unsigned long int


SQL_C_FLOAT


SQLREAL


float


SQL_C_DOUBLE


SQLDOUBLE, SQLFLOAT


double


SQL_C_BOOKMARK[i]


BOOKMARK


unsigned long int[d]


SQL_C_VARBOOKMARK


SQLCHAR *


unsigned char *


SQL_C_TYPE_DATE[c]


SQL_DATE_STRUCT


struct tagDATE_STRUCT {

SQLSMALLINT year;

SQLUSMALLINT month;

SQLUSMALLINT day;

} DATE_STRUCT;[a]


SQL_C_TYPE_TIME[c]


SQL_TIME_STRUCT


struct tagTIME_STRUCT {

SQLUSMALLINT hour;

SQLUSMALLINT minute;

SQLUSMALLINT second;

} TIME_STRUCT;[a]


SQL_C_TYPE_TIMESTAMP[c]


SQL_TIMESTAMP_STRUCT


struct tagTIMESTAMP_STRUCT {

SQLSMALLINT year;

SQLUSMALLINT month;

SQLUSMALLINT day;

SQLUSMALLINT hour;

SQLUSMALLINT minute;

SQLUSMALLINT second;

SQLUINTEGER fraction;[b]

} TIMESTAMP_STRUCT;[a]

2.      常用接口:

  • 连接到数据源

下面的函数用于连接到数据源:

(1)SQLAllocHandle:分配环境、连接、语句或者描述符句柄。

(2)SQLConnect:建立与驱动程序或者数据源的连接。访问数据源的连接句柄包含了包括状态、事务申明和错误信息的所有连接信息。

(3)SQLDriverConnect:与SQLConnect相似,用来连接到驱动程序或者数据源。但它比SQLConnect支持数据源更多的连接信息;

(4)SQLBrowseConnect:支持一种交互方法来检索或者列出连接数据源所需要的属性和属性值。

  • 获取驱动程序和数据源信息

下面的函数用来获取驱动程序和数据源信息:

(1)SQLDataSources:能够被调用多次来获取应用程序使用的所有数据源的名字。

(2)SQLDrivers:返回所有安装过的驱动程序清单,包括对它们的描述以及属性关键字。

(3)SQLGetInfo:返回连接的驱动程序和数据源的元信息。

(4)SQLGetFunctions:返回指定的驱动程序是否支持某个特定函数的信息。

(5)SQLGetTypeInfo:返回指定的数据源支持的数据类型的信息。

  • 设置或者获取驱动程序属性

下面的函数用来设置或者获取驱动程序属性:

(1)SQLSetConnectAttr:设置连接属性值。

(2)SQLGetConnectAttr:返回连接属性值。

(3)SQLSetEnvAttr:设置环境属性值。

(4)SQLGetEnvAttr:返回环境属性值。

(5)SQLSetStmtAttr:设置语句属性值。

(6)SQLGetStmtAttr:返回语句属性值。

  • 设置或者获取描述符字段

下面的函数用来设置或者获取描述符字段:

(1)SQLGetDescField:返回单个描述符字段的值。

(2)SQLGetDescRec:返回当前描述符记录的多个字段的值。

(3)SQLSetDescField:设置单个描述符字段的值。

(4)SQLSetDescRec:设置描述符记录的多个字段。

  • 准备SQL语句

下面的函数用来准备SQL语句:

(1)SQLPrepare:准备要执行的SQL语句。

(2)SQLBindParameter:在SQL语句中分配参数的缓冲区。

(3)SQLGetCursorName:返回与语句句柄相关的游标名称。

(4)SQLSetCursorName:设置与语句句柄相关的游标名称。

(5)SQLSetScrollOptions:设置控制游标行为的选项,在ODBC 3.0 中被SQLGetInfo和SQLSetStmtAttr接口替代

  • 提交SQL请求

下面的函数用来提交SQL请求:

(1)SQLExecute:与SQLPrepare共同使用,执行准备好的SQL语句。

(2)SQLExecDirect:执行一条SQL语句。

(3)SQLNativeSql:返回驱动程序对一条SQL语句的翻译,并不执行sql语句。

(4)SQLDescribeParam:返回对SQL语句中指定参数的描述。

(5)SQLNumParams:返回SQL语句中参数的个数。

(6)SQLParamData:与SQLPutData联合使用在运行时给参数赋值。

(7)SQLPutData:在SQL语句运行时给部分或者全部参数赋值。

  • 检索结果集及其相关信息

下面的函数用来检索结果集及其相关信息:

(1)SQLRowCount:返回INSERT、UPDATE或者DELETE等语句影响的行数。

(2)SQLNumResultCols:返回结果集中列的数目。

(3)SQLDescribeCol:返回结果集中列的描述符记录。

(4)SQLColAttribute:返回结果集中列的属性。

(5)SQLBindCol:为结果集中的列分配缓冲区。

(6)SQLFetch:在结果集中检索下一行元组。

(7)SQLFetchScroll:返回指定的结果行。

(8)SQLGetData:返回结果集中当前行某一列的值。

(9)SQLSetPos:在取到的数据集中设置游标的位置。这个记录集中的数据能够刷新、更新或者删除。

(10)SQLBulkOperations:执行块插入和块书签操作,其中包括根据书签更新、删除或者取数据。

(11)SQLMoreResults:确定是否能够获得更多的结果集,如果能就执行下一个结果集的初始化操作。

(12)SQLGetDiagField:返回一个字段值或者一个诊断数据记录。

(13)SQLGetDiagRec:返回多个字段值或者一个诊断数据记录。

  • 取得数据源系统表的信息

下面的函数用来取得数据源系统表的信息:

(1)SQLColumnPrivileges:返回一个关于指定表的列的列表以及相关的权限信息。

(2)SQLColumns:返回指定表的列信息的列表。

(3)SQLForeignKeys:返回指定表的外键信息的列表。

(4)SQLPrimaryKeys:返回指定表的主键信息的列表。

(5)SQLProcedureColumns:返回指定存储过程的参数信息的列表。

(6)SQLProcedures:返回指定数据源的存储过程信息的列表。

(7)SQLSpecialColumns:返回唯一确定某一行的列的信息,或者当某一事务修改一行的时候自动更新各列的信息。

(8)SQLStatistics:返回一个单表的相关统计信息和索引信息。

(9)SQLTablePrivileges:返回相关各表的名称以及相关的权限信息。

(10)SQLTables:返回指定数据源中表信息。

  • 终止语句执行

下面的函数用来终止语句执行:

(1)SQLFreeStmt:终止语句执行,关闭所有相关的游标,放弃没有提交的结果,选择释放与指定语句句柄相关的资源。

(2)SQLCloseCursor:关闭一个打开的游标,放弃没有提交的结果。

(3)SQLCancel:放弃执行一条SQL语句。

(4)SQLEndTran:提交或者回滚事务。

  • 中断连接

下面的函数处理中断连接的任务:

(1)    SQLDisconnect:关闭指定连接。

(2)    SQLFreeHandle:释放环境、连接、语句或者描述符句柄。

参考:

  https://msdn.microsoft.com/en-us/library/ms714562(v=vs.85).aspx

  http://www.cnblogs.com/huzhongzhong/archive/2011/07/12/2104209.html

时间: 2024-10-01 11:08:35

ODBC API简介的相关文章

Web Api 简介

ASP.NET Web API 简介 ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RESTful 服务的理想平台. ASP.NET Web API 特性 ASP.NET Web API 包含下列特性: 先进的 HTTP 编程模型: 使用新的强类型的 HTTP 对象模型直接操作 HTTP 请求和响应, 在 HTTP客户端使用相同的编程模型和 HTTP

Pomelo开发中Web客户端开发API简介

使用pomelo做服务端开发时,无论什么客户端,只要能遵循与服务端的线上协议,就能够与服务端建立通信.pomelo内建提供的sioconnector和hybridconnector都定义了自己的协议格式,其中sioconnector用于socket.io的通信,hybridconnector则用来处理websocket和tcp的连接通信.为了方便客户端的开发,pomelo提供了部分平台的客户端SDK,主要包括用于Web端的JavaScript的SDK以及基于C/C++语言开发的libpomelo

ZABBIX API简介及使用

API简介 Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时.很难想象管理数千台服务器而没有自动化是多么的困难.Zabbix API为批量操作.第三方软件集成以及其他作用提供可编程接口. Zabbix API是在1.8版本中开始引进并且已经被广泛应用.所有的Zabbix移动客户端都是基于API,甚至原生的WEB前端部分也是建立在它之上.Zabbix API 中间件使得架构更加模块化也避免直接对数据库进行操作.它允许你通过JSON RPC协议来创建.更新和获

ASP.NET Web API 简介

ASP.NET Web API 简介 ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RESTful 服务的理想平台. ASP.NET Web API 特性 ASP.NET Web API 包含下列特性: 先进的 HTTP 编程模型: 使用新的强类型的 HTTP 对象模型直接操作 HTTP 请求和响应, 在 HTTP客户端使用相同的编程模型和 HTTP

gulp API 简介

一.gulp API 简介 gulp 本身能做的事情非常少,主要是通过插件来提供各种功能,gulp 本身只提供了4个非常简洁的 API, 掌握这4个 API 你就基本掌握了 gulp 的全部. 1.gulp.src(globs[, options]) 2.gulp.dest(path[, options]) 3.gulp.task(name[, deps], fn) 4.gulp.watch(glob [, opts], tasks) or gulp.watch(glob [, opts, cb

构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介

构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介 熟悉将用于 Apache Tuscany SCA for C++ 的 API.您将通过本文了解该 API 的主要组成部分,以便快速入门. 查看本系列更多内容 | 0 评论: Ed Slattery ([email protected]), 软件工程师, IBM UK Pete Robbins ([email protected]), 软件工程师, IBM UK Andrew Borley ([email pro

JAIN SIP API 简介

摘要 本文介绍如何在 Java SE 上使用会话发起协议 (SIP) 开发客户端应用程序.文中展示 JAIN SIP API 这种强大的"SIP 堆栈".首先介绍一个简单的 IM 应用程序,然后对其进行剖析来了解该技术. 关于 JAIN SIP API 集成网络 Java API (JAIN) 是一个管理电信标准的 JCP 工作组.会话发起协议 (SIP) 是一种标准通信协议,之前的文章中已对其进行了讨论.将 Java 与 SIP 结合起来就得到了 JAIN SIP API,这是一种强

腾讯地图API简介、整理

目录 腾讯地图API 1 1.API概览... 1 1.1 WebService API(官网注明是beta版本,可能不稳定,慎用):... 1 1.2 URL API:... 2 1.3 静态图API:... 2 1.3 JavaScript API V2:... 2 1.4 另外还有Android SDK, Android 定位SDK,和IOS SDK,主要用于手机端开发.     2 2. 下面重点讲解JavaScript API V2:... 2 2.1最简单的地图-显示一张以坐标为中心

ZooKeeper系列4:ZooKeeper API简介及编程

问题导读: 1.ZooKeeper API 共包含几个包? 2.如何使用ZooKeeper API 创建zookeeper应用程序? 1)ZooKeeper API 简介 ZooKeeper API 共包含 5 个包,分别为: org.apache.zookeeper , org.apache.zookeeper.data ,org.apache.zookeeper.server , org.apache.zookeeper.server.quorum 和org.apache.zookeeper