Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere データ・アクセス API » SQL Anywhere ODBC API » 結果セットの処理

 

カーソルを使用したローの更新と削除

Microsoft の『ODBC Programmer's Reference』では、クエリが位置付けオペレーションを使用して更新可能であることを示すために、SELECT ... FOR UPDATE を使用するように提案しています。SQL Anywhere では、FOR UPDATE 句を使用する必要はありません。次の条件が満たされている場合は、SELECT 文が自動的に更新可能になります。

  • 基本となるクエリが更新をサポートしている。

    つまり、結果のカラムに対するデータ変更文が有効であるかぎり、位置付けデータ変更文をカーソルに対して実行できます。

    ansi_update_constraints データベース・オプションは更新可能なクエリの種類を制限します。

    詳細については、ansi_update_constraints オプション [互換性]を参照してください。

  • カーソル・タイプが更新をサポートしている。

    読み込み専用カーソルを使用している場合、結果セットを更新できません。

ODBC で位置付け更新と位置付け削除を実行するには、2 つの手段があります。

  • SQLSetPos 関数を使用する。

    指定されたパラメータ (SQL_POSITION、SQL_REFRESH、SQL_UPDATE、SQL_DELETE) に応じて、SQLSetPos はカーソル位置を設定し、アプリケーションがデータをリフレッシュしたり、結果セットのデータを更新または削除できるようにします。

    これは、SQL Anywhere で使用する方法です。

  • SQLExecute を使用して、位置付け UPDATE 文と位置付け DELETE 文を送信する。この方法は、SQL Anywhere では使用しないでください。