Thread Rating:
  • 319 Vote(s) - 2.85 Average
  • 1
  • 2
  • 3
  • 4
  • 5
RecordSet.batch-events?=true 時でもRecordModifiedイベントが発行されてしまう
12-25-2013, 11:39 AM,
#1
RecordSet.batch-events?=true 時でもRecordModifiedイベントが発行されてしまう
RecordSet に対して RecordModified イベントをハンドリングして、
あるレコードの変更に付随した処理が流れるようにしています。

しかし、この処理は、画面の初期処理では流したくないので、
ユーザーがグリッド内を操作したときと、プログラム内でレコードの値を修正したときとで、
その変更に付随する処理を行うかどうかを切り替えるために、
RecordSet.batch-event?=true を設定して、RecordModified が発行されないようにしています。

しかし、下記のコードでは、RecordModified が発行されてしまっており、
画面の初期処理の中でも付随処理が走ってしまっています。
これはなぜでしょうか。

Code:
def r = {rs.select-one}
{with rs.batch-events?= true do
    set r["select"] = true
}


他の batch-events? では、正常にRecordModifiedが抑止されていおり、
なぜここだけうまくいかないのかがわかりません。
12-25-2013, 11:44 AM,
#2
RE: RecordSet.batch-events?=true 時でもRecordModifiedイベントが発行されてしまう
batch-event?=true を指定していてもRecordModifiedが発生する原因は、
batch-events?=true の間に変更された項目が、1つだけだったから、ということのようです。

batch-events? がfalse に戻った際に、それまでにたまったイベントがひとつだけであれば、
RecordsBulkChanges ではなく、RecordModified が発行される、ということのようですね。

ヘルプにも、下記のように記載されていました。
 このフラグが true の間は、RecordSet 自体で RecordSetEvent を発生できなくなります。
 このフラグが false に戻されると、
 この期間にレコードセットの状態に起こった変化を表す 1 つの RecordsChanged が発生します。
 これは通常 (常時ではありません)、RecordsBulkChanges です。


初期処理の後にイベントを追加するか、
業務画面のフィールドにフラグをもって、そちらを参照して、
付随処理を流すかどうかを判断するようにしてみます。


Possibly Related Threads...
Thread Author Replies Views Last Post
  RecordView.batch-events? の効果がない umemura 1 2,666 12-10-2013, 03:28 PM
Last Post: umemura
  RecordSet に groupby したい? umemura 1 4,649 09-25-2013, 05:14 PM
Last Post: umemura
  RecordSet DE RecordDataとRecord nasuB 6 8,328 08-22-2011, 11:34 AM
Last Post: nasuB
  RecordSet DE 複数の主キー nasuB 2 4,831 08-16-2011, 09:01 AM
Last Post: nasuB
  {RecordSet.commit}について thiguchi 1 4,733 08-15-2011, 01:04 PM
Last Post: fukuta
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('1022')