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

Learn How To Implement Auto-Incremental Fields In This FireDAC.AutoincFields Sample For Delphi

FireDAC allows the insertion of a new record with an auto-incrementing column and getting back a new value of this column. That works for immediate updates, as well as for cached updates. Depending on the DBMS, the auto-incrementing fields may be implemented either using a special IDENTITY (or similar) column data type, or using a generator (or a sequence) and a table trigger

Location

You can find the AutoincFields sample project at:

Description

The AutoincFields sample shows you how to work with auto-incremental fields using FireDAC. To this end, the sample uses the TFDDatSColumn class to control the client-side and the server-side auto-incrementing fields. Concretely, the sample uses the TFDDatSColumn.ServerAutoIncrement property of TFDDatSColumn to specify when the DBMS generates an auto-incrementing value for the new record column.

How to Use the Sample

  1. Navigate to the location given above and open AutoInc.dproj.
  2. Press F9 or choose Run > Run.
  3. Click on the Use Connection Definition combo box and select an option.

Files

File in DelphiContains
AutoInc.dproj
AutoInc.dpr
The project itself.
fAutoInc.pas
fAutoInc.fmx
The main form.

Implementation

The sample implements the following features.

Create schema adapter

To this end, the sample uses FDCreateInterface. See the following code:

[crayon-673f6f8e03cf2276118804/]

Add master table adapter

The sample adds the master table adapter and sets some configuration properties, such as the ServerAutoIncrement property. See the following code:

[crayon-673f6f8e03cfd033395833/]

Note: setting the ServerAutoIncrement property to True automatically assigns the AutoIncrementSeed and AutoIncrementStep properties to -1.

Add detail table adapter

The sample adds a detail table adapter and sets up some features. To this end, the sample adds the following code:

[crayon-673f6f8e03cff322171540/]

Add constraints to the DatSManager

To this end, the sample uses the Constraints property of TFDDatSTable. See the following code:

[crayon-673f6f8e03d03827878083/]

Add new row to the master table

[crayon-673f6f8e03d04668219737/]

Post changes to RDBMS

Finally, the sample updates the changes with the Update method. Then, the sample uses the Reconcile method to obtain the error information for each record that could not be applied.

[crayon-673f6f8e03d06567058429/]

To see the original post, please refer to the link below:

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

Exit mobile version