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 Delphi | Contains |
---|---|
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
<strong>var</strong> oAdapt: IFDDAptTableAdapter; <strong>begin</strong> <em>// create table adapter FDCreateInterface(IFDDAptTableAdapter, oAdapt); |
Selecting data
<strong>with</strong> oAdapt <strong>do</strong> <strong>begin</strong> FConnIntf.CreateCommand(oComm); SelectCommand := oComm; SelectCommand.Prepare(‘select * from {id FDQA_map1}’); Define; Fetch; <em>//… |
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
<strong>for</strong> i := 0 <strong>to</strong> 4 <strong>do</strong> DatSTable.Rows.Add([i, ‘string’ + IntToStr(i)]); |
Post changes to RDBMS
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