游標(biāo)的可用性
并非所有的接口都為所有的游標(biāo)類(lèi)型提供支持。
ODBC 和 OLE DB (ADO) 支持所有的游標(biāo)類(lèi)型。
嵌入式 SQL 支持所有的游標(biāo)類(lèi)型。
ADO.NET 只提供只進(jìn)、只讀游標(biāo)。
對(duì)于 JDBC
•jConnect 4.x 只提供敏感性未定型游標(biāo)。
•jConnect 5.x 支持所有類(lèi)型的游標(biāo),但是可滾動(dòng)游標(biāo)會(huì)導(dǎo)致性能?chē)?yán)重下降。
•iAnywhere JDBC 驅(qū)動(dòng)程序支持所有類(lèi)型的游標(biāo)。
Sybase Open Client 只支持敏感性未定型游標(biāo)。此外,在使用可更新的非游標(biāo)時(shí),會(huì)產(chǎn)生嚴(yán)重的性能下降。
游標(biāo)屬性
您可以顯式或者隱式從編程接口請(qǐng)求游標(biāo)類(lèi)型。不同的接口庫(kù)提供不同的游標(biāo)類(lèi)型選擇。例如, JDBC 和 ODBC 指定了不同的游標(biāo)類(lèi)型。
每個(gè)游標(biāo)類(lèi)型都由許多特性來(lái)定義:
性 聲明游標(biāo)是的將強(qiáng)制查詢返回地標(biāo)識(shí)每一行所需要的所有列。通常,這意味著返回主鍵中的所有列。所需要的但未指定的任何列都要添加到結(jié)果集中。缺省游標(biāo)類(lèi)型是非的。
可更新性 聲明為只讀的游標(biāo)不能在定位更新或刪除操作中使用。
缺省游標(biāo)類(lèi)型是可更新的。
可滾動(dòng)性 您可以這樣聲明游標(biāo):當(dāng)您在結(jié)果集中移動(dòng)時(shí),它表現(xiàn)出不同的行為。某些游標(biāo)可以只讀取當(dāng)前行或后面的行。其它一些游標(biāo)可以在結(jié)果集中來(lái)回移動(dòng)。
敏感性
通過(guò)游標(biāo)也許可以看到對(duì)數(shù)據(jù)庫(kù)的更改,也許看不到。
這些特性可能會(huì)對(duì)性能以及數(shù)據(jù)庫(kù)服務(wù)器內(nèi)存的使用產(chǎn)生明顯的副作用。
Adaptive Server Anywhere 可產(chǎn)生具有這些特性中的各種混合特性的游標(biāo)。當(dāng)您請(qǐng)求給定類(lèi)型的游標(biāo)時(shí), Adaptive Server Anywhere 將盡可能匹配那些特性。
某些情況下,并非所有特性都可以提供。例如, Adaptive Server Anywhere 中的不敏感游標(biāo)必須是只讀的。如果您的應(yīng)用程序請(qǐng)求可更新的不敏感游標(biāo),提供給它的將是別的類(lèi)型的游標(biāo)。
并非所有的接口都為所有的游標(biāo)類(lèi)型提供支持。
ODBC 和 OLE DB (ADO) 支持所有的游標(biāo)類(lèi)型。
嵌入式 SQL 支持所有的游標(biāo)類(lèi)型。
ADO.NET 只提供只進(jìn)、只讀游標(biāo)。
對(duì)于 JDBC
•jConnect 4.x 只提供敏感性未定型游標(biāo)。
•jConnect 5.x 支持所有類(lèi)型的游標(biāo),但是可滾動(dòng)游標(biāo)會(huì)導(dǎo)致性能?chē)?yán)重下降。
•iAnywhere JDBC 驅(qū)動(dòng)程序支持所有類(lèi)型的游標(biāo)。
Sybase Open Client 只支持敏感性未定型游標(biāo)。此外,在使用可更新的非游標(biāo)時(shí),會(huì)產(chǎn)生嚴(yán)重的性能下降。
游標(biāo)屬性
您可以顯式或者隱式從編程接口請(qǐng)求游標(biāo)類(lèi)型。不同的接口庫(kù)提供不同的游標(biāo)類(lèi)型選擇。例如, JDBC 和 ODBC 指定了不同的游標(biāo)類(lèi)型。
每個(gè)游標(biāo)類(lèi)型都由許多特性來(lái)定義:
性 聲明游標(biāo)是的將強(qiáng)制查詢返回地標(biāo)識(shí)每一行所需要的所有列。通常,這意味著返回主鍵中的所有列。所需要的但未指定的任何列都要添加到結(jié)果集中。缺省游標(biāo)類(lèi)型是非的。
可更新性 聲明為只讀的游標(biāo)不能在定位更新或刪除操作中使用。
缺省游標(biāo)類(lèi)型是可更新的。
可滾動(dòng)性 您可以這樣聲明游標(biāo):當(dāng)您在結(jié)果集中移動(dòng)時(shí),它表現(xiàn)出不同的行為。某些游標(biāo)可以只讀取當(dāng)前行或后面的行。其它一些游標(biāo)可以在結(jié)果集中來(lái)回移動(dòng)。
敏感性
通過(guò)游標(biāo)也許可以看到對(duì)數(shù)據(jù)庫(kù)的更改,也許看不到。
這些特性可能會(huì)對(duì)性能以及數(shù)據(jù)庫(kù)服務(wù)器內(nèi)存的使用產(chǎn)生明顯的副作用。
Adaptive Server Anywhere 可產(chǎn)生具有這些特性中的各種混合特性的游標(biāo)。當(dāng)您請(qǐng)求給定類(lèi)型的游標(biāo)時(shí), Adaptive Server Anywhere 將盡可能匹配那些特性。
某些情況下,并非所有特性都可以提供。例如, Adaptive Server Anywhere 中的不敏感游標(biāo)必須是只讀的。如果您的應(yīng)用程序請(qǐng)求可更新的不敏感游標(biāo),提供給它的將是別的類(lèi)型的游標(biāo)。