I have a simple example, but in three layers, with sqldataset + datasetprovider + clientdataset. I do not load any fields in the sqldataset. In the datasetprovider I leave the updatemode in upwherekeyonly.
In the datasetprovider I leave allowcommandtext to true to be able to receive commandtext from the client side via clientdataset. On the client side I load the fields with Select * ... and during the execution time I send the commandtext with a join so that it brings only the fields already loaded. When I try to edit some registry and give the applyupdates in the onreconcileerror event I get:
Unable to Find Record. No Key especified
Use xe5 + dbexpress + mysql. The question is how do I configure the components to edit and update records from a command with join?
SUMMARY DISCUSSION
You can leave all the default delphi settings, the only thing you need to do is put the name of the table to update in the OnGetTablename event of the datasetprovider, this resolved all my problems.