Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
CodeDelphiRAD Studio

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:

  • Start | Programs | Embarcadero RAD Studio Sydney | Samples and then navigate to:
    • Object PascalDatabaseFireDACSamplesDApt LayerCommands
  • Subversion Repository:
    • You can find Delphi code samples in GitHub Repositories. Search by name into the samples repositories according to your RAD Studio version.

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.


Kai for RAD Studio is Now Available! Special Live Webinar: Introducing Kai - A New Chapter for RAD Studio RAD Studio 13.1 Florence Now Available

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES