Posted on 2009-06-22 15:06
Prayer 閱讀(1966)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
DB2CLI
http://publib.boulder.ibm.com/iseries/v5r2/ic2989/index.htm?info/cli/rzadpmst99.htm
用途
SQLSetConnectAttr() 設(shè)置特定連接的連接屬性。
語(yǔ)法
SQLRETURN SQLSetConnectAttr (SQLHDBC hdbc,
SQLINTEGER fAttr,
SQLPOINTER vParam,
SQLINTEGER sLen);
函數(shù)自變量
表 146. SQLSetConnectAttr 自變量
數(shù)據(jù)類型 |
自變量 |
使用 |
描述 |
SQLHDBC |
hdbc |
輸入 |
連接句柄 |
SQLINTEGER |
fAttr |
輸入 |
要設(shè)置的連接屬性,有關(guān)更多信息,請(qǐng)參考表 147。 |
SQLPOINTER |
vParam |
輸入 |
與 fAttr 相關(guān)聯(lián)的值。根據(jù)選項(xiàng)的不同,這可以是指向 32 位整數(shù)值的指針,也可以是字符串。 |
SQLINTEGER |
sLen |
輸入 |
如果輸入值是字符串的話,此自變量就是它的長(zhǎng)度;否則不使用此自變量。 |
用法
通過(guò) SQLSetConnectAttr() 設(shè)置的所有連接和語(yǔ)句選項(xiàng)都將持續(xù)到調(diào)用 SQLFreeConnect() 或下次調(diào)用 SQLSetConnectAttr() 時(shí)為止。
通過(guò) vParam 設(shè)置的信息的格式取決于所指定的 fAttr。選項(xiàng)信息可以是 32 位整數(shù),也可以是指向以空終止的字符串的指針。
表 147. 連接選項(xiàng)
fAttr |
內(nèi)容 |
SQL_ATTR_AUTOCOMMIT |
32 位的值,它設(shè)置連接的落實(shí)行為。可能的值列示如下:
- SQL_TRUE — 在執(zhí)行 SQL 語(yǔ)句時(shí)自動(dòng)落實(shí)每個(gè) SQL 語(yǔ)句。
- SQL_FALSE — 不自動(dòng)落實(shí) SQL 語(yǔ)句。如果在具有落實(shí)控制的環(huán)境下運(yùn)行,則必須使用 SQLEndTran() 或 SQLTransact() 來(lái)顯式地落實(shí)或回滾更改。
|
SQL_ATTR_COMMIT 或 SQL_TXN_ISOLATION
|
32 位的值,它設(shè)置 hdbc 所引用的當(dāng)前連接的事務(wù)隔離級(jí)別。DB2 UDB CLI 接受下列值,但每個(gè)服務(wù)器都可能只支持這些隔離級(jí)別的其中某一些:
- SQL_TXN_NO_COMMIT — 未使用落實(shí)控制。
- SQL_TXN_READ_UNCOMMITTED — 臟讀取、不可重復(fù)讀取和幻象讀取是有可能的。
- SQL_TXN_READ_COMMITTED — 臟讀取是不可能的。不可重復(fù)讀取和幻象讀取是有可能的。
- SQL_TXN_REPEATABLE_READ — 臟讀取和不可重復(fù)讀取是不可能的。幻象讀取是有可能的。
- SQL_TXN_SERIALIZABLE — 事務(wù)是可序列化的。臟讀取、不可重復(fù)讀取和幻象都是不可能的。
在 IBM 術(shù)語(yǔ)中:
- SQL_TXN_READ_UNCOMMITTED 是指“未落實(shí)的讀取”;
- SQL_TXN_READ_COMMITTED 是指“游標(biāo)穩(wěn)定性”;
- SQL_TXN_REPEATABLE_READ 是指“讀取穩(wěn)定性”;
- SQL_TXN_SERIALIZABLE 是指“可重復(fù)讀取”。
有關(guān)“隔離級(jí)別”的詳細(xì)說(shuō)明,請(qǐng)參考 IBM SQL Reference。
應(yīng)該在調(diào)用 SQLConnect() 之前設(shè)置 SQL_ATTR_COMMIT 屬性。如果在建立連接之后更改了值,并且該連接是與遠(yuǎn)程數(shù)據(jù)源的連接,則在下一次對(duì)連接句柄成功調(diào)用 SQLConnect() 之前,此更改不會(huì)生效。
|
SQL_ATTR_DATE_FMT |
32 位的整數(shù)值,這個(gè)值可以是:
- SQL_FMT_ISO — 使用“國(guó)際標(biāo)準(zhǔn)化組織”(ISO)日期格式 yyyy-mm-dd。這是缺省值。
- SQL_FMT_USA — 使用美國(guó)日期格式 mm/dd/yyyy。
- SQL_FMT_EUR — 使用歐洲日期格式 dd.mm.yyyy。
- SQL_FMT_JIS — 使用“日本工業(yè)標(biāo)準(zhǔn)”日期格式 yyyy-mm-dd。
- SQL_FMT_MDY — 使用日期格式 mm/dd/yyyy。
- SQL_FMT_DMY — 使用日期格式 dd/mm/yyyy。
- SQL_FMT_YMD — 使用日期格式 yy/mm/dd。
- SQL_FMT_JUL — 使用儒略日期格式 yy/ddd。
- SQL_FMT_JOB — 使用作業(yè)缺省值。
|
SQL_ATTR_DATE_SEP |
32 位的整數(shù)值,這個(gè)值可以是:
- SQL_SEP_SLASH — 使用斜杠(/)作為日期分隔符。這是缺省值。
- SQL_SEP_DASH — 使用破折號(hào)(-)作為日期分隔符。
- SQL_SEP_PERIOD — 使用句點(diǎn)(.)作為日期分隔符。
- SQL_SEP_COMMA — 使用逗號(hào)(,)作為日期分隔符。
- SQL_SEP_BLANK — 使用空格作為日期分隔符。
- SQL_SEP_JOB — 使用作業(yè)缺省值。
|
SQL_ATTR_DBC_DEFAULT_LIB |
一個(gè)字符值,這個(gè)值指示將用于解析未限定文件引用的缺省庫(kù)。如果連接正在使用系統(tǒng)命名方式,則此項(xiàng)無(wú)效。 |
SQL_ATTR_DBC_SYS_NAMING |
32 位的整數(shù)值,這個(gè)值可以是:
- SQL_TRUE — DB2 UDB CLI 使用 iSeries 系統(tǒng)命名方式。使用斜杠(/)定界符來(lái)限定文件。使用作業(yè)的庫(kù)列表來(lái)解析未限定的文件。
- SQL_FALSE — DB2 UDB CLI 使用缺省命名方式,即 SQL 命名。使用句點(diǎn)(.)定界符來(lái)限定文件。使用缺省庫(kù)或當(dāng)前用戶標(biāo)識(shí)來(lái)解析未限定的文件。
|
SQL_ATTR_DECIMAL_SEP |
32 位的整數(shù)值,這個(gè)值可以是:
- SQL_SEP_PERIOD — 使用句點(diǎn)(.)作為小數(shù)分隔符。這是缺省值。
- SQL_SEP_COMMA — 使用逗號(hào)(,)作為日期分隔符。
- SQL_SEP_JOB — 使用作業(yè)缺省值。
|
SQL_ATTR_EXTENDED_COL_INFO |
32 位的整數(shù)值,這個(gè)值可以是:
- SQL_TRUE — 可以在 SQLColAttributes() 上使用對(duì)此連接句柄分配的語(yǔ)句句柄來(lái)檢索擴(kuò)展的列信息,如“基本表”、“基本模式”、“基本列”和“標(biāo)號(hào)”。
- SQL_FALSE — 不能在 SQLColAttributes() 函數(shù)上使用對(duì)此連接句柄分配的語(yǔ)句句柄來(lái)檢索擴(kuò)展的列信息。這是缺省值。
|
SQL_ATTR_TIME_FMT |
32 位的整數(shù)值,這個(gè)值可以是:
- SQL_FMT_ISO — 使用“國(guó)際標(biāo)準(zhǔn)化組織”(ISO)時(shí)間格式 hh.mm.ss。這是缺省值。
- SQL_FMT_USA — 使用美國(guó)時(shí)間格式 hh:mmxx,其中 xx 是 AM 或 PM。
- SQL_FMT_EUR — 使用歐洲時(shí)間格式 hh.mm.ss。
- SQL_FMT_JIS — 使用“日本工業(yè)標(biāo)準(zhǔn)”時(shí)間格式 hh:mm:ss。
- SQL_FMT_HMS — 使用 hh:mm:ss 格式。
|
SQL_ATTR_TIME_SEP |
32 位的整數(shù)值,這個(gè)值可以是:
- SQL_SEP_COLON — 使用冒號(hào)(:)作為時(shí)間分隔符。這是缺省值。
- SQL_SEP_PERIOD — 使用句點(diǎn)(.)作為時(shí)間分隔符。
- SQL_SEP_COMMA — 使用逗號(hào)(,)作為時(shí)間分隔符。
- SQL_SEP_BLANK — 使用空格作為時(shí)間分隔符。
- SQL_SEP_JOB — 使用作業(yè)缺省值。
|
SQL_SAVEPOINT_NAME |
一個(gè)字符值,它指示 SQLEndTran() 要對(duì)函數(shù) SQL_SAVEPOINT_NAME_ROLLBACK 或 SQL_SAVEPOINT_NAME_RELEASE 使用的保存點(diǎn)名稱。 |
SQL_2ND_LEVEL_TEXT |
32 位的整數(shù)值,這個(gè)值可以是:
- SQL_TRUE — 通過(guò)調(diào)用 SQLError() 獲取的錯(cuò)誤文本將包含關(guān)于錯(cuò)誤的完整文本描述。
- SQL_FALSE — 通過(guò)調(diào)用 SQLError() 獲取的錯(cuò)誤文本將只包含關(guān)于錯(cuò)誤的第一個(gè)級(jí)別的描述。這是缺省值。
|
返回碼
- SQL_SUCCESS
- SQL_SUCCESS_WITH_INFO
- SQL_ERROR
- SQL_INVALID_HANDLE
診斷
表 148. SQLSetConnectAttr SQLSTATE
SQLSTATE |
描述 |
說(shuō)明 |
HY001 |
內(nèi)存分配失敗 |
驅(qū)動(dòng)程序無(wú)法分配支持此函數(shù)的執(zhí)行或完成所必需的內(nèi)存。 |
HY009 |
自變量值無(wú)效 |
給定 fAttr 值,對(duì)自變量 vParam 指定了無(wú)效的值。
指定了無(wú)效的 fAttr 值。
|