Yo sigo viendo mucho código repetido.
Los MDO funcionan de lujo, por tanto, algo se está colando. Lo que yo hago es lo siguiente:
- Definir el GeneratorLink del MDODataset, esto es crucial para que no de fallos de clave primaria.
- En todas las sqls (incluida la de select) añado un parámetro para seleccionar
solo el registro que me interesa.
- En el BeforePost, es donde asigno todos los Edits a sus respectivos campos.
Al final el código se reduce a:
Código Delphi
[-]
if modo = 'Insertar' then
Insert
else if modo = 'Modificar' then
Edit;
Post;
PD: Sugiero que uses constantes o tipos enumerados, de lo contrario, tarde o temprano escribirás "modificar" en minúsculas y no entrará en esa condición, fallo que tardarás en descubrir, porque un fallo mecanográfico es lo último que piensas:
Código Delphi
[-]
Type TModo = (mInsertar, mModificar);
if modo = mInsertar then
....