1. Mantenga la Calma -> lo de Urgente!! no le ayudará a solucionar el problema, antes causa el efecto contrario en el foro.
2. Solución:
Si ya tiene la BD con las tablas relacionadas entonces:
Si ya agregó los componentes de acceso del conjunto de datos o sea algún TDataSet que hagan referencia a las tablas, como un TADOTable por ejemplo, entonces:
Tablas - DataSet - DataSource
Maestro - SetMaestro - SourceMaestro
Detalle - SetDetalle - SourceDetalle
Agrege un componente TDataSource (
SourceMaestro) que haga referencia a la Tabla Maestro (
SetMaestro).
En el componente TDataSet que hace referencia a la Tabla Detalle (
SetDetalle), busque la propiedad
MasterSource y coloque allí el
SourceMaestro
En la propiedad
MasterFields seleccione los campos que conforman la Unión entre ambas Tablas (Ej:
MaestroID-DetalleID).
Agrege un componente TDataSource (
SourceDetalle) que haga referencia a la Tabla Detalle (
SetDetalle)
Obviamente el
DBGridDetalle va relacionado con
SourceDetalle.
Si lo desea puede agregar un componente
TDBNavigator también relacionado con
SourceDetalle para crear una barra estándar.
y Voilé ... una relación Maestro-Detalle a surgido...
Ahora el tema de que con
un Botón se grabe se soluciona llamando al método
SetDetalle.Post en el Evento
OnClick
Pero antes
SetDetalle debe estar en estado de inserción usando
Para chequear el
estado de SetDetalle utilice
Código Delphi
[-]
if (SetDetalle.Status = dsInsert) then
begin
SetDetalle.Post;
end;
Pruébelo y cuéntenos como le fue ...
________________________________________
Con colaboración podemos lograr cosas grandes.