I use the DataSet to insert a record into the database. But I also want to return the id of this entry in the insert request. For this, I wrote a query for the InsertSQL property
insert into FEATURES_ETALON (CIMP_MRA, CODE_CLASSIF, DEVICE_METHOD, DIAPASON_MAX, DIAPASON_MIN, FORMAT, ID, MEASURAND, MEASURING_APPARATUS, PARAMETER_CONDITION_MEAS, UNIT, VALUE_AMBIGUITY, VALUE_CONDITION_MEAS) values (:CIMP_MRA, :CODE_CLASSIF, :DEVICE_METHOD, :DIAPASON_MAX, :DIAPASON_MIN, :FORMAT, GEN_ID(GEN_ID_FEATURES_ETALON, 1), :MEASURAND, :MEASURING_APPARATUS, :PARAMETER_CONDITION_MEAS, :UNIT, :VALUE_AMBIGUITY, :VALUE_CONDITION_MEAS) returning ID into :ID but since there is no ID parameter, then in the place “into: ID”, the error is: “" Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 5, column 19.?. "
Next in the AfterPost (DataSet) event, I want to assign a value to the ID field .
procedure TFMain.DataSetAfterPost(DataSet: TDataSet); begin DataSet.FieldByName('ID').AsInteger := DataSet.ParamByName('ID').AsInteger; DataSet.Transaction.CommitRetaining; end; - How do I create a parameter in the DataSet?
- Am I assigning an ID in the right place?