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);

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 操作系统实验:银行家算法C语言实现

    操作系统实验:银行家算法C语言实现银行家算法C语言实现#include<stdio.h>#include<stdlib.h>#defineok1#definetrue1#definefalse0intclaim[100][100]={0};//各个进程需要的最大资源数量intalloc[100][100]={0};//各个进程已分配的资源数量intneed[100][100]={0};//各个进程还需要的资源数量intresource[100]={

  • java中的适配器是什么及有什么作用(通熟易懂)

    java中的适配器是什么及有什么作用(通熟易懂)其实适配器只是一个类,它实现了某种接口,提供了方法体。这样,再用到这个接口时,可以直接继承适配器,这样就不需要把接口中的每一个方法再填充一遍了,只需要在这个类中复写一下需要用的方法。这样简单,方便。这只是一个简化编程的模式,举个例子,比如java的鼠标监听接口有七个方法,但是往往我们要处理的只是其中一两个方法,但是实现这个接口就必须为了java语法而去重写七个方法,这是毫无意义的,

  • arraydeque方法_arrayset

    arraydeque方法_arrayset美人如斯!ArrayDeque是java中对双端队列的线性实现一.特性无容量大小限制,容量按需增长; 非线程安全队列,无同步策略,不支持多线程安全访问; 当用作栈时,性能优于Stack,当用于队列时,性能优于LinkedList 两端都可以操作 具有fail-fast特征 不能存储null 支持双向迭代器遍历注意:ArrayDeque的迭代器和大多数容器迭代器一样,都是…

  • 柴油发电机发电机组_柴油发电机配置规范

    柴油发电机发电机组_柴油发电机配置规范应急柴油发电机主要用于重要场所,在紧急情况或事故停电后瞬间停电,通过应急发电机组迅速恢复 并延长一段供电时间。这类用电负荷称为一级负荷。对断电时间有严格要求的设备、仪表及计算机系统,除配备发电机外还应设电池或UPS供电。应急柴油发电机的工作有两个特点:(1)第一个特点是作应急用,连续工作的时间不长,一般只需要持续运行几小时(≤12H);(2)第二个特点是作备用,应急发电机组平时处于停机等待状态,只…

  • CentOS7 安装MYSQL的教程

    CentOS7 安装MYSQL的教程今天出一期Linux版CentOS7安装MYSQL的教程。【0】实验环境:CentOS7保持网络畅通【1】查看是否已经安装Mysqlrpm-qa|grepmysql下面是我的操作,可见并没有安装Mysql,那么直接进入【2】如果你查看出来有东西,可以使用下面命令将其删除(xxx为文件全名)rpm-exxx【2】下载官方Mysql包Wgethttp://dev.mysql.com/get/mysql57-community-release-el7-

  • SSDP协议_固态硬盘两种协议

    SSDP协议_固态硬盘两种协议SSDP,即简单服务发现协议(SSDP,SimpleServiceDiscoveryProtocol),是一种应用层协议,是构成通用即插即用(UPnP)技术的核心协议之一。 实现简单服务发现协议是在HTTPU和HTTPMU的基础上实现的协议。按照协议的规定,当一个控制点(客户端)接入网络的时候,它可以向一个特定的多播地址的SSDP端口使用M-SEARCH方法发送“ssdp:…

    2022年10月11日

发表回复

您的电子邮箱地址不会被公开。

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