SQLSetEnvAttr
SQLSetEnvAttr
函數(shù)定義:
函數(shù)的大概意思就是將,第一個(gè)參數(shù)設(shè)置為第二個(gè)參數(shù)的屬性SQLRETURN?SQLSetEnvAttr(
?????SQLHENV?????EnvironmentHandle,
?????SQLINTEGER?????Attribute,
?????SQLPOINTER?????ValuePtr,
?????SQLINTEGER?????StringLength);
參數(shù)詳解:
EnvironmentHandle?:輸入變量
需放入環(huán)境句柄(參考SQLAllocHandle)
Attribute?:輸入變量 ??????????????ValuePtr:輸入變量
Attribute取值 | ValuePtr取值 |
SQL_ATTR_CONNECTION_POOLING | SQL_CP_OFF :?默認(rèn)值,關(guān)閉連接池 SQL_CP_ONE_PER_DRIVER :連接池中的每一個(gè)連接都必須屬于同一個(gè)驅(qū)動(dòng)下的連接 SQL_CP_ONE_PER_HENV :連接池中的每一個(gè)連接都申請(qǐng)于同一個(gè)環(huán)境句柄 |
SQL_ATTR_CP_MATCH | 當(dāng)調(diào)用?SQLConnect或者?SQLDriverConnect?時(shí),該參數(shù)用于決定從連接池中選擇連接的精度。 SQL_CP_STRICT_MATCH:默認(rèn)值,連接的屬性和驅(qū)動(dòng)池中的連接完全一致時(shí)才會(huì)采用。 SQL_CP_RELAXED_MATCH :并非匹配所有的連接屬性。 |
SQL_ATTR_ODBC_VERSION | 根據(jù)取值決定ODBC表現(xiàn)出的版本特性。? ·?SQL_OV_ODBC3 ·?SQL_OV_ODBC2 |
SQL_ATTR_OUTPUT_NTS | 確定返回字符串的結(jié)束符。 默認(rèn)值為?SQL_TRUE返回’/0’結(jié)束的字符串。 SQL_FALSE相反。 |
?
StringLength?:輸入變量
如果ValuePtr為一個(gè)整型指針,則可以被忽略。如果為二進(jìn)制或字符串,那么就需要再次放入其長(zhǎng)度。
返回值:
返回值有四種:SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE, or SQL_ERROR.
查看詳細(xì)錯(cuò)誤信息可調(diào)用SQLGetDiagRec?函數(shù)(之后章節(jié)講解)。
用法:
必須先設(shè)置ODBC版本,才可以設(shè)置其他屬性。
1.?設(shè)置版本ODBC 3.X
rs= SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);
2.?設(shè)置SQL_CP_ONE_PER_DRIVER
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);
3.?關(guān)閉線程池
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);
4.?設(shè)置SQL_CP_ONE_PER_HENV
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);
5.?設(shè)置嚴(yán)格匹配
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);
6.?設(shè)置非嚴(yán)格匹配
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);
7.?設(shè)置返回’/0’結(jié)束字符串
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);
8.?設(shè)置非’/0’字符串
rs= SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);
rs= SQLSetEnvAttr(henv,SQL_ATTR_OUTPUT_NTS,(SQLPOINTER)SQL_FALSE,SQL_IS_INTEGER);
轉(zhuǎn)載于:https://www.cnblogs.com/jadeshu/p/10663678.html
總結(jié)
以上是生活随笔為你收集整理的SQLSetEnvAttr的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LVS-端口亲缘性
- 下一篇: ubuntu mysql 定时生成 备份