前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ODBC学习笔记—SQLAllocHandle

ODBC学习笔记—SQLAllocHandle

作者头像
全栈程序员站长
发布2022-09-14 10:02:05
1.2K0
发布2022-09-14 10:02:05
举报
文章被收录于专栏:全栈程序员必看

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

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.cn/159296.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQLAllocHandle
    • 函数定义:
      • 参数详解:
        • 返回值:
          • 用法:
          相关产品与服务
          云数据库 MySQL
          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档