2016-08-30 25 views
1

DBNavigationは、DBGridに変更を加えたときに自動的にデータベースの日付と時刻を挿入または更新するように最適化できます。データベースでDBNavigationを使用してDelphiデータベースを作成および修正しました

私はDBGridの中でいくつかのCOLを変更し、(ポスト編集)を保存するためにクリックしたときに私が作成または変更されたときに、日付と時刻を挿入または更新する今ID, Name, Description, Created<datetime>, Modified<datetime>

を持っています!

私はこれについてグーグルで尋ねるが、私は見つけられない。中デルファイ

アム新...

誰もが私がそれについての詳細を読むことができます例やリンクを与えることができます!

+1

DBNavigatorやその他のGUIコンポーネントには何もありません。 ITはデータアクセスライヤーに属します。解決策1: 'TDataset.BeforePost'イベントを使用して、これらのフィールドの値を設定します。解決策2:Delphiコードに触れることなく、MySQLトリガーを使用してください。 –

+0

https://habrahabr.ru/post/146717/とhttps://ru.wikipedia.org/wiki/totpиггер_(базы_данных) –

+0

を参照してください。私は 'Rusian'言語 – Ivan

答えて

1

グリッドに接続されているデータセットを使用してこれを行うことができます。

IDEで、データセットをクリックし、オブジェクトインスペクタの[イベント]タブに移動します。

コメントで述べたように、サーバー上のトリガを使用して、これらのフィールドを更新/取り込むことができますが、その後、あなたはリフレッシュする必要があり、その中にBeforePostイベント、ダブルクリックを見つけて、この

if MyDataSet.State = dsInsert then // a new record is being added 
    MyDataSet.FieldByName('Created').AsDateTime := Now; 
else 
    // modifying an existing record 
    MyDataSet.FieldByName('Modified').AsDateTime := Now; 

のようなコードを入力してくださいDelphiのデータセット内のデータは、これらのフィールドの値を受け取るために使用されます。これはおそらく現時点では少し進んでいます。

+0

ありがとう本当に良い仕事。 – Ivan

+0

また、彼はMySQLとPHPの経験がデルファイよりも多いので(彼がMySQLでプログラムするコードが多いほど)、デルファイで行う必要が少なくなる(将来は維持する)。 –

+0

彼が使用しているdb-accessライブラリによっては、TDataSet.ReSyncを介して投稿されたレコードを自動的に読み直すべきではありませんか? –

関連する問題