游標的可用性
並非所有的接口都為所有的游標類型提供支持。
ODBC 和 OLE DB (ADO) 支持所有的游標類型。
嵌入式 SQL 支持所有的游標類型。
ADO.Net 只提供只進、只讀游標。
對於 JDBC
•jConnect 4.x 只提供敏感性未定型游標。
•jConnect 5.x 支持所有類型的游標,但是可滾動游標會導致性能嚴重下降。
•iAnywhere JDBC 驅動程序支持所有類型的游標。
Sybase Open ClIEnt 只支持敏感性未定型游標。此外,在使用可更新的非唯一游標時,會產生嚴重的性能下降。
游標屬性
您可以顯式或者隱式從編程接口請求游標類型。不同的接口庫提供不同的游標類型選擇。例如, JDBC 和 ODBC 指定了不同的游標類型。
每個游標類型都由許多特性來定義:
唯一性 聲明游標是唯一的將強制查詢返回唯一地標識每一行所需要的所有列。通常,這意味著返回主鍵中的所有列。所需要的但未指定的任何列都要添加到結果集中。缺省游標類型是非唯一的。
可更新性 聲明為只讀的游標不能在定位更新或刪除操作中使用。
缺省游標類型是可更新的。
可滾動性 您可以這樣聲明游標:當您在結果集中移動時,它表現出不同的行為。某些游標可以只讀取當前行或後面的行。其它一些游標可以在結果集中來回移動。
敏感性
通過游標也許可以看到對數據庫的更改,也許看不到。
這些特性可能會對性能以及數據庫服務器內存的使用產生明顯的副作用。
Adaptive Server Anywhere 可產生具有這些特性中的各種混合特性的游標。當您請求給定類型的游標時, Adaptive Server Anywhere 將盡可能匹配那些特性。
某些情況下,並非所有特性都可以提供。例如, Adaptive Server Anywhere 中的不敏感游標必須是只讀的。如果您的應用程序請求可更新的不敏感游標,提供給它的將是別的類型的游標 (對值敏感)。