RAD Studio10.3テスト√
データベースに正常に接続した後[接続リファレンス] Delphi FireDACがMySQLデータベースに接続します
1.フォームにcxGridコントロールを配置し、プロパティ
を設定してテーブルにデータがないことを確認し、cxGridで[カスタマイズ]をクリックして、右側にある[列]を見つけます。これは手動で追加できます。右側の[追加]をクリックするか、テーブル内のフィールドを直接検索して右側の[フィールドの取得]をクリックすると、フィールドが使用可能になります。立ち止まるな
2. FDQueryプロパティを設定し、キャッシュの更新をTrueに設定します。3。
データが変更され、データベースに保存する前に送信する必要があります。このとき、ボタンを追加してダブルクリックし、これら2行のコードを記述します。
procedure TForm1.Button1Click(Sender: TObject);
begin
FDQuery1.ApplyUpdates(); // 应用更新(确认更新)
FDQuery1.CommitUpdates; // 提交更新
end;
4.以前はすでに達成されていますが、引き続き少しコンテンツを追加してください。ステータスバー[StatusBar]を追加し、ステータスバーをダブルクリックして、追加します。
5. DataSource [OnDataChange]のイベントを設定します
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
// 属性
// cachedUpdates 是否缓存更新数据
// ChangeCount 数据变动的数量
// 判断 FDQuery1 内容是否有改动
if FDQuery1.ChangeCount > 0 then
StatusBar1.Panels[0].Text := '有改动--' + FDQuery1.ChangeCount.ToString
else
StatusBar1.Panels[0].Text := '无改动--' + FDQuery1.ChangeCount.ToString;
end;
6.終了する前にデータが送信されているかどうかを判断し、プロンプトを表示します。
Form1のイベントで[OnCloseQuery]を見つけ、ダブルクリックして開きます
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
// UpdatesPending 是否有更新挂起【是否有数据变动】
if FDQuery1.UpdatesPending then
case Application.MessageBox('数据已修改,确认不保存退出吗?', '提示',
MB_OKCANCEL + MB_DEFBUTTON2 + MB_TOPMOST) of
IDOK:
begin
CanClose := True;
end;
IDCANCEL:
begin
CanClose := false;
end;
end;
end;
7.レコードのステータスのUpdateStatusは、
最初に新しいフィールドを作成します。最初にFDQueryをクリックして接続を閉じ、 [FDQuery]-> [フィールドエディター]-> [新しいフィールド]
を右クリックして[プロパティを設定]、テーブルのタイトルバーを右クリックして列を追加し、追加した列をクリックします。 、列のプロパティを設定します
。DataBinding- >状態がすべて設定されています。FDQueryイベントで[OnCalcFields]を見つけ、ダブルクリックして開きます。
procedure TForm1.FDQuery1CalcFields(DataSet: TDataSet);
begin
// 计算字段
case DataSet.UpdateStatus of
usUnmodified:
DataSet['State'] := '未修改';
usModified:
DataSet['State'] := '已修改';
usInserted:
DataSet['State'] := '已插入数据';
usDeleted:
DataSet['State'] := '已删除';
end;
end;
これらを設定すると、削除されたものが表示されないことがわかります。デフォルトのものは表示されません。2つのボタンを追加して表示し、デフォルトに戻しましょう。
procedure TForm1.Button2Click(Sender: TObject);
begin // FilterChages 设为显示全部
FDQuery1.FilterChanges := [rtModified, rtInserted, rtDeleted, rtUnmodified, rtHasErrors];
end;
procedure TForm1.Button3Click(Sender: TObject);
begin // FilterChages 设为默认显示
FDQuery1.FilterChanges := [rtModified, rtInserted, rtUnmodified];
end;
仕事が終わったら、効果を自分で見てみましょう。
後で読むことができるように、学習中に記録されたメモ。