ODBC学习笔记—SQLAllocHandle

ODBC学习笔记—SQLAllocHandleSQLAllocHandle函数定义:顾名思义,该函数就是用来分配句柄的,句柄类型参考参数详解。SQLRETURNSQLAllocHandle(     SQLSMALLINT     HandleType,     SQLHANDLE     InputHandle,     SQLHANDLE*     OutputHandlePtr);参数详解:Handl

大家好,又见面了,我是你们的朋友全栈君。

SQLAllocHandle

函数定义:

顾名思义,该函数就是用来分配句柄的,句柄类型参考参数详解。

SQLRETURN SQLAllocHandle(

     SQLSMALLINT     HandleType,

     SQLHANDLE     InputHandle,

     SQLHANDLE *     OutputHandlePtr);

参数详解:

HandleType :输入变量

该变量只能从下列四个中选择其一:

SQL_HANDLE_ENV:用于申请环境句柄
SQL_HANDLE_DBC :用于申请连接句柄

SQL_HANDLE_DESC:用于申请描述符句柄
SQL_HANDLE_STMT:用于申请语句句柄

InputHandle :输入变量

该变量放入已经被分配好的前提句柄,如果第一个变量为环境句柄,则放入SQL_NULL_HANDLE即可,若果第一个变量为SQL_HANDLE_DBC,则第二个变量必须为已分配的环境句柄,如第一个变量为SQL_HANDLE_DESC,SQL_HANDLE_STMT则,第二个变量必须为已分配好的连接句柄。

OutputHandlePtr :输出变量

该变量为一个指针变量,用于保存申请来的句柄,申请句柄类型为第一个变量,在定义该指针的时候需注意类型一致。

返回值:

返回值有四种:SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE, or SQL_ERROR.

查看详细错误信息可调用SQLGetDiagRec 函数(之后章节讲解)。

用法:

初始化指针变量:

SQLHENV  henv = NULL;

SQLHDBC  hdbc = NULL;

SQLHSTMT hstmt = NULL;

SQLHDESC hdesc=NULL;           

SQLRETURN rs = 0;   //使用指针的初始化

1.申请环境句柄:

rs = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);

2.申请连接句柄:

rs = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);

rs = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);

rs = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);

3.申请语句句柄:

rs = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);

rs = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);

rs = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);

rs = SQLConnect(hdbc,(UCHAR*)szDSN,SQL_NTS,(UCHAR*)szUID,SQL_NTS,(UCHAR*)szAuthStr,SQL_NTS);

rs = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);

4.申请描述句柄:

rs = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);

rs = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);

rs = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);

rs = SQLConnect(hdbc,(UCHAR*)szDSN,SQL_NTS,(UCHAR*)szUID,SQL_NTS,(UCHAR*)szAuthStr,SQL_NTS);

rs = SQLAllocHandle(SQL_HANDLE_DESC,hdbc,&hdesc);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159296.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月14日 下午8:16
下一篇 2022年7月14日 下午8:16


相关推荐

  • vue中使用moment处理时间戳转换成日期或时间格式

    vue中使用moment处理时间戳转换成日期或时间格式vue 中使用 moment 处理时间戳转换成日期或时间格式

    2026年3月26日
    2
  • JavaScript 数组排序

    JavaScript 数组排序JavaScript数组排序1、reverse方法2、sort方法1、reverse方法reverse方法会将数组内的元素反序排序。如:letarr=[1,2,3,4,5,6];arr.reverse();//arr=[6,5,4,3,2,1]2、sort方法sort方法默认会将元素当成字符串相互对比,也可以传入自己写的比较函数来决定排序顺序。如:letarr=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19

    2022年6月14日
    33
  • 2026年3月18日
    2
  • MATLAB R2013a license.lic 过期问题[通俗易懂]

    MATLAB R2013a license.lic 过期问题[通俗易懂]MATLAB8.1R2013alicense.lic过期问题转载自:http://blog.csdn.net/chengyq116/article/details/78965102…\MATLAB8.1R2013a\Matlab801\serial\license.lic1.修改系统时间    修改系统时间至之前license.lic时间。

    2022年7月26日
    9
  • 查找历史市盈率

    查找历史市盈率https://www.zhihu.com/question/28424413

    2022年8月3日
    6
  • vb编程入门_python编程入门

    vb编程入门_python编程入门Linux操作系统Shell编程快速入门、shell变量、、运算符、条件判断、流程控制(if、case、for、while语句)。

    2022年8月18日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号