ODBC - 头文件, 核心对象, 函数

1. 什么是ODBC
ODBC(Open Database Connectivity, 开放式数据库连接), 是微软提出的数据库访问接口标准。开放数据库互连定义了访问数据库的API一个规范,这些API独立于不同厂商的数据库产品。在开始使用ODBC编程之前,需要安装你要连接的数据库的ODBC驱动程序,并在ODBC驱动管理器中注册。Windows 操作系统自带了ODBC驱动程序管理器, 可以在 “控制面板->管理驱动->ODBC管理器” 找到.

Unix/Linux 下的ODBC管理器请看下面链接
ODBC管理器 http://www.unixodbc.org/
ODBC 驱动 http://www.easysoft.com/products/data_access/index.html
ODBC API 可以在MSDN上找到 http://msdn.microsoft.com/en-us/library/ms714177.aspx

2. ODBC头文件
ODBC头文件有5个:sql.h, sqlext.h, sqltypes.h, sqlucode.h and odbcinst.h
一般情况下用到sql.h 和sqlext.h
sql.h包含了大多数我们经常会用到的函数, sql.h include 了sqltypes.h
sqlext.h 包含了ODBC3的新特性, sqlext.h include了sqlucode.h
odbcinst.h 包含了一些安装配置相关的API, 比如SQLConfigDataSource函数

3. ODBC核心宏,对象HANDLE和函数
(1) 宏
ODBCVER, 决定你使用的ODBC API, ODBCVER=0x0351表示使用的是3.5.1版本的ODBC, ODBCVER=0x0200表示使用ODBC 2
UNICODE, 当定义了这个宏, 所有函数都使用unicode字符串
ODBC_STD

(2)对象ODBC HANDLES
SQLHENV: environment handle ,
SQLHDBC: Connection handle,
SQLHSTMT: SQL statement handle,
SQLHDESC: descriptor handle
有了SQLHENV, SQLHDBC, SQLHSTMT这三个handle就能做很多事情了。

(3)函数
a.分配和释放Handle
SQLRETURN SQLAllocHandle(SQLSMALLINT HandleType,  SQLHANDLE InputHandle,  SQLHANDLE *OutputHandlePtr)
SQLRETURN SQLFreeHandle(SQLSMALLINT HandleType,  SQLHANDLE Handle)
这里的HandleType值可以是
SQL_HANDLE_ENV
SQL_HANDLE_DBC
SQL_HANDLE_STMT

对于不用的对象的函数
SQLAllocEnv/SQLFreeEnv
SQLAllocConnect/SQLDisconnect/SQLFreeConnect
SQLAllocStmt/SQLFreeStmt

b. 设置属性
SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0);
SQLSetStmtAttr

c. 操作数据库
SQLConnect
SQLDriverConnect
SQLPrepare
SQLExecute
SQLExecDirect
SQLRowCount
SQLFetchScroll/SQLBindCol

d.错误处理
SQLGetDiagRec

4. 一个例子
列出安装的ODBC驱动的data source

 

5. MFC ODBC
MFC对ODBC对象和函数进行了封装,主要有以下几个类CDatabase, CRecordset. 需要包含"afxdb.h"头文件

 

参考:

http://www.easysoft.com/developer/languages/c/odbc-tutorial-fetching-results.html

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值