問題タブ [beforeupdate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - before_validation コールバックを使用して関連モデルを変更する
Railsコールバックを正しく実装する方法に少し苦労しています:
モデル X (属性 A、B、C を持つ) とモデル Y (属性 C、D、E を持つ - つまり、両方とも属性 C を持つ) との has_many 関係があります。関連するすべてのモデル Y の属性 C がモデル X の属性と一致する必要があることを示す X のモデル検証があります。
したがって、モデル X の更新中に C 属性を変更する際に、'before_validation, on :update' コールバックを使用して、関連するすべての Y モデルの C 値を変更し、モデル X の更新された C 値と一致させました。これにより、 model X を検証して正常に更新します。ただし、関連付けられたモデル Y の変更された C 値は保持されず、モデル X のリロード時に元の値に戻ります。
では、モデル Y の変更を「ロックイン」するために「after_save」コールバックも必要ですか? それとも、この種のことを行うために別の方法を使用する必要がありますか?
- - - アップデート - - - - - -
データベースへの保存が間違っている可能性があると思います:
私のコールバックコード
vba - Access 2007 で VBA を介して更新前プロパティを設定する方法
Form.SourceObject
ユーザー入力に基づいてレコード ソース ( ) を変更するサブフォームがあります。サブフォームの特定のフィールドのプロパティに依存する変更追跡システムを開発していBefore Update
ます (違いがある場合はシート ビューで)。レコード ソースを変更しなければ、Before Update
適切にトリガーされます。変更すると失われ、トリガーを再割り当てする必要があります。問題は、これを行う方法を説明しているものを見つけることができなかったことです。「トラッカー」が呼び出されるコードである次を使用してみました:
エラー 2455 = 「BeforeUpdate プロパティへの無効な参照を含む式を入力しました」
エラー 2455 = 「BeforeUpdate プロパティへの無効な参照を含む式を入力しました」
コンパイル エラー = 予期される関数または変数
エラー 438 = 「オブジェクトはこのプロパティまたはメソッドをサポートしていません」
編集-
BeforeUpdate
さらにいじってみると、対応する before update イベントが存在すると仮定して、フォーム内のコントロールにプロパティを適切に割り当てることができます。
残念ながら、このメソッドはまだサブフォームで失敗します...
Form.SourceObject
を変更しているという事実が、プロパティの設定を妨げていると思い始めています。
vba - Access 2007 でサブフォームの SourceObject を変更するとプロパティを変更できなくなる
を使用してユーザー入力に基づいてデータを取得する場所を変更するサブフォームがありますMe.SubForm.SourceObject = Query.SomeQuery
。これを行うことで、BeforeUpdate
プロパティを設定する機能が失われているようです。
私が使用しているコードは次のとおりです。
が変更される前にこれが機能することを確認しましたSubForm.SourceObject
が、その後、次のエラーがスローされます: RTE 2455 "BeforeUpdate プロパティへの無効な参照を持つ式が入力されました。"
これは既知の問題なのか、コードを変更して調整する必要があるのか 疑問に思っていました.
vba - Access 2007 で BeforeUpdate イベントをトリガーするコントロールを検出する方法
BeforeUpdate
次のコードを使用して、イベントを使用してサブフォームで行われた変更を追跡する監査証跡があります。
私が抱えている問題は、ユーザーが 2 つの変更を行い、変更履歴テーブルに 3 つのことが記録されていることです。最初の変更は 2 回、2 回目の変更は 1 回です (この傾向は、ユーザーが離れない限り続きます)。記録)。私がやりたいのは、イベントをトリガーしたコントロールを特定してBeforeUpdate
上記のコードに渡すことで、イベントをトリガーしたコントロールだけBeforeUpdate
が異なるかどうかを確認し、すでにログに記録されている他のコントロールをスキップできるようにすることです。または、Access がログに記録された変更を新しいものとして認識しないようにする方法はありますか?
grails - beforeUpdate の DirtyPropertyNames メソッドはバージョンのみを返します
dirtyPropertyNames メソッドの使用に問題があります。
grails バージョン 2.1.3 を使用しています。以下のメソッドは常にバージョンを出力し、他の変更された String プロパティは出力しません。
この問題に詳しい人はいますか?
ruby-on-rails - モデル内の特定の値への更新を防止するRails
私のアプリではnote.rb
、以下に示すスキーマを使用しています。私がやろうとしているのは、メモを編集する機能を制限することです。基本的に、メモが過去 24 時間以内に作成されたものであれば、好きなように更新できます。24 時間後にできることは、remind_at
時間を変更することだけです。note.rb
メモが編集可能かどうかを確認するメソッドがファイルに含まれています。そうであれば、別のパーシャルを表示します。しかし、それはフロント エンドを制限するだけです。誰かが編集ウィンドウを開いたままにしたり、URL を入力したりした場合、24 時間後でもメモを編集できます。
私がやろうとしているのは、メモのbefore_update
更新が許可されているかどうかを確認するメソッドを作成することです。body
何があってもremind_at
時間を更新できます。問題の一部は、これが単に時間の変更であるかどうかをコントローラーが認識する方法remind_at
が経由params[:reschedule]
でありparams
、モデルでアクセスできないことです。
triggers - Oracle 11gの参照整合性を備えた更新トリガーの前
トリガーの更新前の意味を理解したいです。
DEPT_MST
どこDEPT_ID
が主キーであるかというテーブルがあります。DEPT_ID
1 と 2 の2 つの行があります。
別のテーブルには主キーとしてEMP
列があり、これはテーブルを参照する外部キーです。EMP_ID
EMP_DEPT_ID
DEPT_ID
DEPT
ここで、新しい値がマスターテーブルに存在するかどうかをチェックするEMP
テーブル列に before update トリガーを追加すると、新しいテーブルに新しい行が挿入されます。EMP_DEPT_ID
EMP_DEPT_ID
DEPT
DEPT_ID
DEPT
ここで、表の 2EMP_DEPT_ID
を 3に更新すると、整合性制約違反エラーの親が見つかりません。EMP_DEPT_ID
EMP
そう、
- これは、オラクルが最初に整合性制約をチェックしてから、「更新前」トリガーを呼び出すことを意味しますか?
- では、このチェックをバイパスして、更新トリガーの前に呼び出すにはどうすればよいでしょうか?
- ここで「更新前」とは正確にはどういう意味ですか?
- 明示的な PL SQL ブロックを使用するのではなく、トリガーを使用して上記の結果を達成するにはどうすればよいですか?
ありがとうございました