客户程序要和一个远程的服务器或数据库进行通讯,必须首先和这个服务器或数据库建
立连接。下面我们将要介绍如何通过 ODBC 建立一个连接以及使用连接。
为了建立一个 ODBC 数据源连接,需要使用到环境句柄以及连接句柄。句柄有一个层
次的概念,一个连接句柄总是和一个唯一的环境句柄相联系的,所有的连接句柄必须在环境
句柄释放之前释放。
客 户 程 序 可 以 通 过 调 用 函 数 SQLAllocHandle 来 申 请 一 个 环 境 句 柄 , 调 用 函 数
SQLAllocHandle 时必须传入句柄选项 SQL_HANDLE_ENV,当申请环境句柄成功之后,可
以在此环境句柄上申请连接句柄。申请环境句柄和连接句柄的代码示范如下:
#include <windows.h> #include <sql.h> #include <sqltypes.h> #include <sqlext.h> /* 检测返回代码是否为成功标志,当为成功标志时返回 TRUE,否则返回 FALSE */ #define RC_SUCCESSFUL(rc) ((rc) == SQL_SUCCESS || (rc) == SQL_SUCCESS_WITH_INFO) /* 检测返回代码是否为失败标志,当为失败标志时返回 TRUE,否则返回 FALSE */ #define RC_NOTSUCCESSFUL(rc) (!(RC_SUCCESSFUL(rc))) HENV henv;/* 环境句柄 */ HDBC hdbc;/* 连接句柄 */ SQLRETURN sret; /* 返回代码 */ void main(void) { /* 申请一个环境句柄 */ SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv); /* 设置环境句柄的 ODBC 版本 */ SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER); /* 申请一个连接句柄 */ SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); /* 释放连接句柄 */ SQLFreeHandle(SQL_HANDLE_DBC, hdbc); /* 释放环境句柄 */ SQLFreeHandle(SQL_HANDLE_ENV, henv); }
https://xpanx.com/
评论