欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL GetEnvAttr函数定义及用法讲解

程序员文章站 2022-06-21 20:52:55
sqlgetenvattr 函数定义: 用于得到当前环境的各项设置属性 sqlreturnsqlgetenvattr( sqlhenvenvironmenthandle, sqlintegeratt...

sqlgetenvattr

函数定义:

用于得到当前环境的各项设置属性

sqlreturnsqlgetenvattr(

sqlhenvenvironmenthandle,

sqlintegerattribute,

sqlpointervalueptr,

sqlintegerbufferlength,

sqlinteger *stringlengthptr);

参数详解:

environmenthandle

:输入参数

需要查看的环境句柄

attribute

:输入参数

需要查询的属性

valueptr

:输出参数

一个缓存区指针,用于存放之后查询到的属性信息

bufferlength

:输入参数

上述指针的长度

stringlengthptr

:输出参数

返回储存在valueptr中的接收到的属性字符串的长度,我们只知道定义时valueptr的长度,如果全部遍历会浪费资源。

 

返回值:

返回值有四种:sql_success, sql_success_with_info, sql_invalid_handle, or sql_error.

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

用法:

1.取得odbc版本信息

rs= sqlsetenvattr(henv,sql_attr_odbc_version,(sqlpointer)sql_ov_odbc3,sql_is_integer);

rs_c = sqlallochandle(sql_handle_dbc,henv,&hdbc);

rs_c = sqlconnect(hdbc,(uchar*)szdsn,sql_nts,(uchar*)szuid ,sql_nts,(uchar*)szauthstr,sql_nts);

rs=sqlgetenvattr(henv,sql_attr_odbc_version,(sqlpointer)ptr,50,&rp);

2.取得连接池支持级别(前置不支持)

rs= sqlsetenvattr(henv,sql_attr_odbc_version,(sqlpointer)sql_ov_odbc3,sql_is_integer);

rs= sqlsetenvattr(henv,sql_attr_connection_pooling,(sqlpointer)sql_cp_off,sql_is_integer);

rs_c = sqlallochandle(sql_handle_dbc,henv,&hdbc);

rs_c = sqlconnect(hdbc,(uchar*)szdsn,sql_nts,(uchar*)szuid ,sql_nts,(uchar*)szauthstr,sql_nts);

rs=sqlgetenvattr(henv,sql_attr_connection_pooling,(sqlpointer)ptr,50,&rp);

3.取得连接池支持级别(前置环境支持)

rs= sqlsetenvattr(henv,sql_attr_odbc_version,(sqlpointer)sql_ov_odbc3,sql_is_integer);

rs= sqlsetenvattr(henv,sql_attr_connection_pooling,(sqlpointer)sql_cp_one_per_henv,sql_is_integer);

rs_c = sqlallochandle(sql_handle_dbc,henv,&hdbc);

rs_c = sqlconnect(hdbc,(uchar*)szdsn,sql_nts,(uchar*)szuid ,sql_nts,(uchar*)szauthstr,sql_nts);

rs=sqlgetenvattr(henv,sql_attr_connection_pooling,(sqlpointer)ptr,50,&rp);

4.取得连接池支持级别(前置驱动支持)

rs= sqlsetenvattr(henv,sql_attr_odbc_version,(sqlpointer)sql_ov_odbc3,sql_is_integer);

rs= sqlsetenvattr(henv,sql_attr_connection_pooling,(sqlpointer)sql_cp_one_per_driver,sql_is_integer);

rs_c = sqlallochandle(sql_handle_dbc,henv,&hdbc);

rs_c = sqlconnect(hdbc,(uchar*)szdsn,sql_nts,(uchar*)szuid ,sql_nts,(uchar*)szauthstr,sql_nts);

rs=sqlgetenvattr(henv,sql_attr_connection_pooling,(sqlpointer)ptr,50,&rp);

5.取得连接池匹配模式(前置严格)

rs= sqlsetenvattr(henv,sql_attr_odbc_version,(sqlpointer)sql_ov_odbc3,sql_is_integer);

rs= sqlsetenvattr(henv,sql_attr_cp_match,(sqlpointer)sql_cp_strict_match,sql_is_integer);

rs_c = sqlallochandle(sql_handle_dbc,henv,&hdbc);

rs_c = sqlconnect(hdbc,(uchar*)szdsn,sql_nts,(uchar*)szuid ,sql_nts,(uchar*)szauthstr,sql_nts);

rs=sqlgetenvattr(henv,sql_attr_cp_match,(sqlpointer)ptr,50,&rp);

6.取得连接池匹配模式(前置宽松)

rs= sqlsetenvattr(henv,sql_attr_odbc_version,(sqlpointer)sql_ov_odbc3,sql_is_integer);

rs= sqlsetenvattr(henv,sql_attr_cp_match,(sqlpointer)sql_cp_relaxed_match,sql_is_integer);

rs_c = sqlallochandle(sql_handle_dbc,henv,&hdbc);

rs_c = sqlconnect(hdbc,(uchar*)szdsn,sql_nts,(uchar*)szuid ,sql_nts,(uchar*)szauthstr,sql_nts);

rs=sqlgetenvattr(henv,sql_attr_cp_match,(sqlpointer)ptr,50,&rp);

7.取得驱动字符串输出空终止(\0)

rs= sqlsetenvattr(henv,sql_attr_odbc_version,(sqlpointer)sql_ov_odbc3,sql_is_integer);

rs= sqlsetenvattr(henv,sql_attr_output_nts,(sqlpointer)sql_true,sql_is_integer);

rs_c = sqlallochandle(sql_handle_dbc,henv,&hdbc);

rs_c = sqlconnect(hdbc,(uchar*)szdsn,sql_nts,(uchar*)szuid ,sql_nts,(uchar*)szauthstr,sql_nts);

rs=sqlgetenvattr(henv,sql_attr_output_nts,(sqlpointer)ptr,50,&rp);