Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Learn About How To Redirect Inserting, Deleting And Updating Records In Delphi With FireDAC

This sample shows how to redirect inserting, deleting and updating records using standalone table adapter.

Location

You can find the Commands sample project at:

Files

File in DelphiContains
Commands.dproj
Commands.dpr
The project itself.
fCommands.pas
fCommands.fmx
The main form.

Implementation

The sample implements the following standalone table adapter features.

Create table adapter

  var
    oAdapt: IFDDAptTableAdapter;
  begin
    // create table adapter
    FDCreateInterface(IFDDAptTableAdapter, oAdapt);

Selecting data

  with oAdapt do begin
    FConnIntf.CreateCommand(oComm);
    SelectCommand := oComm;
    SelectCommand.Prepare('select * from {id FDQA_map1}');
    Define;
    Fetch;
  //...

Redirect records

Redirect all record inserts into FDQA_map2 table instead FDQA_map1:

  FConnIntf.CreateCommand(oComm);
    InsertCommand := oComm;
    InsertCommand.CommandText := 'insert into {id FDQA_map2}(id2, name2) values(:NEW_id1, :NEW_name1)';

Redirect all record deletes into FDQA_map3 table instead FDQA_map1:

    FConnIntf.CreateCommand(oComm);
    DeleteCommand := oComm;
    DeleteCommand.CommandText := 'delete from {id FDQA_map3} where id3 = :OLD_id1';

Redirect all record updates into FDQA_map4 table instead FDQA_map1:

  FConnIntf.CreateCommand(oComm);
    UpdateCommand := oComm;
    UpdateCommand.CommandText := 'update {id FDQA_map4} set id4 = :NEW_id1, name4 = :NEW_name1 where id4 = :OLD_id1';

Add new rows

  for i := 0 to 4 do
      DatSTable.Rows.Add([i, 'string' + IntToStr(i)]);

Post changes to RDBMS

  Update;

For more details and links to other posts, you can refer to the link below:

http://docwiki.embarcadero.com/CodeExamples/Sydney/en/FireDAC.DAptLayerCommands_Sample

Check out the full source code for the demo over on GitHub or in your RAD Studio IDE examples section.


Exit mobile version