Saludos a todos¡¡
Pues haciendo un ciclo While recorriendo el ClientDataSet que tiene los datos, en mi caso el AdoDataSet1 lo cargue con datos de un archivo de excel que necesito cargar a mi tabla cdsPAsignaturas en mi bd de MySQL, algo asi:
Código Delphi
[-]
AdoDataSet1.First;
While not AdoDataSet1.EoF do
begin
CDSLastidA.active:= false; CDSLastidA.active:=true;
cdsPAsignaturas.Append; cdsPAsignaturas.FieldByName('idPlanYAsignatura').Value:= CDSLastidA.FieldByName('id').AsInteger+1; cdsPAsignaturas.FieldByName('idPlanGeneral').Value := AdoDataSet1.Fields[0].Value;
cdsPAsignaturas.FieldByName('sPlanNombreOficial').Value:= AdoDataSet1.Fields[1].Value ;
cdsPAsignaturas.FieldByName('sPlanNombreCorto').Value := AdoDataSet1.Fields[2].Value ;
cdsPAsignaturas.FieldByName('iOrden').Value := AdoDataSet1.Fields[3].Value ;
cdsPAsignaturas.FieldByName('sPeriodoNombre').Value := AdoDataSet1.Fields[4].Value ;
....
cdsPAsignaturas.post;
AdoDataSet1.Next;
end;
Claro que para guardar los cambios directamente a la bd debe tener el famoso ApplyUpdates en el evento AfterPost del ClientDataSet donde copiaras los datos algo como:
Código Delphi
[-]
procedure Tdmconexion.cdsPlantelesAfterPost(DataSet: TDataSet);
begin
if cdsPlanteles.ChangeCount > 0 then
cdsPlanteles.ApplyUpdates( 0 );
end;
Esto me funciona, espero te sirva Chaja...saludos¡¡¡