SQL GetEnvAttr函数定义及用法讲解

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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐