DB2eStatement クラスは、特定の Statement 属性を取得し、設定します。 Statement オブジェクトで DB2eStatement クラス・メソッドを使用するためには、まず Statement オブジェクトが DB2eStatement オブジェクトにキャストされていなければなりません。これらのメソッドは、CLI/ODBC 関数である SQLGetStmtAttr および SQLSetStmtAttr を、適切な引き数を 指定して呼び出すことによりインプリメントされます。
com.ibm.db2e.jdbc パッケージ
共通クラス DB2eStatement
Statement のインプリメント
表 108は、DB2 Everyplace がサポートする DB2eStatement クラスの
メソッドをリストしたものです。
メソッドの戻りタイプ | メソッド |
---|---|
void | enableDeletePhysicalRemove(boolean enable) DELETE SQL ステートメントで、レコードの ダーティー・ビット値にかかわらず、レコードの物理的な除去を使用可能または使用不可にする。 |
void | enableDirtyBitSetByApplication(boolean enable) 使用可能が真であれば、アプリケーション・モードを 使用可能にする。それ以外の場合は、システム・モードを使用可能にする。 |
void | enableReadIncludeMarkedDelete (boolean enable) 論理的に削除されたレコードを、可視あるいは 不可視にする。 |
void | enableReorg (boolean enable) DB2 Everyplace または ユーザーの明示的な REORG SQL ステートメント によるデータベース再編成を使用可能または使用不可にする。 |
boolean | isEnabledDeletePhysicalRemove() delete SQL ステートメントが、レコードのダーティー・ビット値にかかわらず、 レコードを物理的に除去するか? あるいは、レコードに「削除」とマークするのみとするか? |
boolean | isEnabledDirtyBitSetByApplication() データベース・システムはアプリケーション・モードであるか? あるいは、 システム・モードであるか? |
boolean | isEnabledReadIncludeMarkedDelete() 論理的に削除されたレコードは SQL ステートメントから可視であるか? あるいは、 これらのレコードは SQL からは不可視であるか? |
boolean | isEnabledReorg() データベース再編成を DB2 Everyplace またはユーザーの明示的な REORG SQL ステートメント によって行えるか? あるいは、REORG SQL ステートメントに制限があり、ユーザーが作成した表の 自動データベース再編成が使用不可であるか? |
以下の例で、st は Statement オブジェクトを、 rs は ResultSet オブジェクトを表します。
ダーティー・ビットの状況を無視してレコードを表 T から物理的に除去するには、 次のようにします。
DB2eStatement db2e_st = (DB2eStatement) st; db2e_st.enableDeletePhysicalRemove(true); st.executeUpdate("DELETE FROM T WHERE X<>0");
ダーティー・ビットが DELETE とマークされたレコードを含め、 ダーティー・ビットが設定されている表 T のすべてのレコードを読み取るには、次のようにします。
DB2eStatement db2e_st = (DB2eStatement) st; db2e_st.enableReadIncludeMarkedDelete(true); rs = st.executeQuery("SELECT * FROM T WHERE $dirty<>0");
表 T のレコードのダーティー・ビットをクリーンにするには、次のようにします。
DB2eStatement db2e_st = (DB2eStatement) st; db2e_st.enableDirtyBitSetByApplication(true); st.executeUpdate("UPDATE T SET $dirty=0 WHERE $dirty>0");
関連したタスク
関連した解説