LCConnection の Remove メソッド

このメソッドは、ライトバックの結果セットからの削除または外部システムのレコードに対するキー削除のいずれかを実行します。

定義位置

LCConnection

構文

count = lcConnection.Remove (keyFieldlist, recordIndex, recordCount)

パラメータ

パラメータ

説明

keyFieldlist

LCFieldlist。キー削除に対してのみ、キーを含むフィールドリストを指定します。フィールドリスト内の LCFIELDF_KEY フラグが設定されている各フィールドと値が一致するレコードのみが、コネクション先から削除されます。必要であれば、LCFIELDF_KEY_XXX フラグを不等式キーとして使用します。キーフィールドはいくつでも指定できます。1 つも指定しない場合、ターゲットのレコードはすべて削除されます。コネクション先のフィールドとフィールドリストのフィールドは、MapByName プロパティが TRUE の場合は名前で、それ以外の場合は位置でマッチングされます。

recordIndex

Long、1 以上 (オプション)。フィールドリスト内の開始レコードの索引。デフォルトは、1 です。

recordCount

Long、1 以上 (オプション)。実行するキー削除の回数。ライトバック削除の場合は 1 を指定します。ただし、異なる更新値およびキー値で複数のキー更新を実行する場合は、1 より大きい値を指定できます。デフォルトは、1 です。

戻り値

説明

count

Long。削除に成功したレコード数。 レコード数の判断がつかない場合は、定数 LCCOUNT_UNKNOWN が返されます。

使用法

同じターゲットからデータを削除する Remove メソッドでは、同じフィールドリストを続けて使用するとパフォーマンスが向上します。

WRITEBACK プロパティには、ライトバック削除とキー削除のどちらを実行するかを指定します。

GT、LT および NE といった不等式キーフラグを使用する場合は、フラグを指定しない場合のデフォルトは等式となる点に注意してください。不等式フラグでは、次の組み合わせが有効です。

keyFieldList に複数のキーフィールド比較演算子を指定すると、結果的に「AND」で条件を連結することになります。LCConnection ではすべての条件に一致するレコードが削除されます。1 つ以上のキー条件を指定した場合、または、CONDITION プロパティに条件を指定した場合も同様です。

LCConnection では、複数の条件を論理演算子「OR」で連結する方法は直接サポートされません。ただし Connector でサポートされる照会言語を使用し、LCConnection.Execute で照会を実行するか、または CONDITION フィールドに「OR」型の照会を指定することは可能です。

「LIKE」比較演算子でのパターンマッチングのルールは、Connector によって異なります。詳しくは、使用しているデータベースのドキュメントを参照してください。

Option Public
Uselsx "*lsxlc" 

Sub Initialize
  Dim src As New LCConnection ("db2") 
 Dim keyList As New LCFieldList
  Dim key As LCField

  ' set the appropriate properties to connect to the data sources
  src.Database = "Gold"
  src.Userid = "JDoe"
  src.Password = "xyzzy"
  src.Metadata = "customer"
  src.MapByName = True
  ' connect to the two data sources
  src.Connect

  ' use a key to find certain records to remove
  Set key =  keyList.Append ("ACCOUNTMANAGER", LCTYPE_INT)
  key.Flags = LCFIELDF_KEY
  key.value = 200

  ' we can perform a keyed delete of the matching record in the table
  Print "Removed " & Cstr (src.Remove (keyList)) & " record(s)"
End Sub

出力例

Removed 2 record(s).

LCConnection for DB2 の Remove メソッド

このメソッドは、ライトバックの結果セットのレコード、または DB2® の METADATA オブジェクト内でキー検索されたレコードを削除します。

LCXRemove メソッドは、WRITEBACK プロパティが設定されているかどうか、および現在の結果セットでライトバックがサポートされているかどうかによって 2 つのモードのいずれかで実行されます。

ライトバックの結果セットとは、最後に取り出されたレコードを直接変更可能な結果セットです。多くの場合このモードはキーモードより効率的です。ライトバックをサポートするには、Execute または Select で結果セットを作成する前に WRITEBACK プロパティを設定します。Call および Catalog ではライトバックの結果セットはサポートされません。この設定によりライトバックの結果セットが作成されます。Fetch でレコードを取り出した後、Update および Remove メソッドをライトバックで実行できます。WRITEBACK プロパティを設定してこの 2 つのメソッドを呼び出すと、最後に取り出されたレコードに対してオペレーションが実行されます。WRITEBACK プロパティを設定しなかった場合、結果セットがライトバックの結果セットであってもキーによってオペレーションが実行されます。

ライトバックを使用しない削除

METADATA プロパティに指定したメタデータに対し、1 つ以上のキー削除が実行されます。キー値として使用する各レコードごとに、これらのキー値で構成されるキー削除が実行されます。CONDITION プロパティに指定した値も検索条件に加えられます。

LCFIELDF_KEY フラグが設定されたフィールドのみがキー値として使用されます。

MAP_NAME プロパティで、KeyFieldlist のフィールドとターゲットのメタデータのフィールドを名前と位置のどちらでマッピングするかを指定します。マッピングとフィールドフラグの処理は、LCFieldlistMerge を呼び出すことで暗示的に実行されます。その際、ターゲットのメタデータのフィールド名を NameFieldlist、KeyFieldlist を DataFieldlist、MergeFlags を LCMERGEF_NAME_LOSS、LCMERGEF_REMOVE、LCMERGEF_KEY およびオプションで (MAP_NAME プロパティに応じて) LCMERGEF_MAP_NAME に設定します。

ライトバック削除

現在の結果セットがライトバックオペレーションに対応しており、その結果セットに対して LCXFetch が実行されている必要があります。最後の LCXFetch の呼び出しで取り出された文書が削除されます。