Итак, вам нужна форма, в которой вы можете редактировать / вставлять / удалять более одной записи в своей таблице, а затем сохранять все изменения в своей базе данных одним нажатием кнопки с минимальным кодом?
Вы могли быиспользуйте классическую настройку с ClientDataSet, как это:
Перетащите на форму следующие компоненты:
ADOConnection1
ADOQuery1
DataSetProvider1
ClientDataSet1
DataSource1
DBGrid1
Button1
Теперь настройте свойства следующим образом:
ADOConnection1 : just as before
ADOQuery1 : just as before
DataSetProvider1 : property DataSet := ADOQuery1;
ClientDataSet1 : property ProviderName := DataSetProvider1;
property Active := true;
DataSource1 : property DataSet := ClientDataSet1;
DBGrid1 : property DataSource := DataSource1;
....
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.ApplyUpdates(0);
end;
СейчасВаши пользователи могут редактировать более одной записи в сетке, они могут вставлять более одной записи в сетку, они могут удалять более одной записи в сетке, а Button1Click позаботится обо всех обновлениях базы данных для вас
Вы также можете написать ClientDatSet1.CancelUpdates;
, если хотите отменить все изменения.
Также убедитесь, что вы используете MidasLib
в своих целях, например:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, unit2, DB, ADODB, StdCtrls, Grids, DBGrids, Provider, DBClient,
MidasLib; // this one is important whan you use ClientDataSets !!
Попробуйте и посмотрите, подходит ли оно вам