カーソル動作
ODBC では、カーソルのスクロールの可否と感度を設定することでカーソル動作を指定する、ISO オプションがサポートされます。 このような動作は、SQLSetStmtAttr の呼び出し時に SQL_ATTR_CURSOR_SCROLLABLE オプションと SQL_ATTR_CURSOR_SENSITIVITY オプションを設定して指定します。 SQL Server Native Client ODBC ドライバーでは、次の特性を持つサーバー カーソルを要求して、これらのオプションを実装します。
カーソル動作の設定 |
要求されるサーバー カーソルの特性 |
---|---|
SQL_SCROLLABLE と SQL_SENSITIVE |
キーセット ドリブン カーソルとバージョンに基づくオプティミスティック同時実行制御 |
SQL_SCROLLABLE と SQL_INSENSITIVE |
静的カーソルと読み取り専用同時実行 |
SQL_SCROLLABLE と SQL_UNSPECIFIED |
静的カーソルと読み取り専用同時実行 |
SQL_NONSCROLLABLE と SQL_SENSITIVE |
順方向専用カーソルとバージョンに基づくオプティミスティック同時実行制御 |
SQL_NONSCROLLABLE と SQL_INSENSITIVE |
既定の結果セット (順方向専用、読み取り専用) |
SQL_NONSCROLLABLE と SQL_UNSPECIFIED |
既定の結果セット (順方向専用、読み取り専用) |
バージョンに基づくオプティミスティック同時実行制御では、基になるテーブルに timestamp 列が必要です。 timestamp 列がないテーブルでバージョンに基づくオプティミスティック同時実行制御が要求されると、サーバーでは値に基づくオプティミスティック同時実行制御が使用されます。
スクロール可能
SQL_ATTR_CURSOR_SCROLLABLE が SQL_SCROLLABLE に設定されていると、カーソルでは、SQLFetchScroll の FetchOrientation パラメーターに対して、さまざまな値がサポートされます。 SQL_ATTR_CURSOR_SCROLLABLE が SQL_NONSCROLLABLE に設定されているときは、カーソルでは FetchOrientation 値に対しては SQL_FETCH_NEXT しかサポートされません。
感度
SQL_ATTR_CURSOR_SENSITIVITY が SQL_SENSITIVE に設定されているとき、現在のユーザーが行ったデータ変更または他のユーザーがコミットしたデータ変更がカーソルに反映されます。 SQL_ATTR_CURSOR_SENSITIVITY が SQL_INSENSITIVE に設定されているときは、データ変更がカーソルに反映されません。