Cita:
Empezado por Dclase
Igual con post y sin post me da el mismo error..
Código Delphi [-]With ClientDataSet3 Do Begin Close; ClientDataSet1.Commantext := ' Select * from TablaA'; Open If Not Eof Then Begin First; While Not Eof Do Begin ClientDataSet2.Append; ClientDataSet2.FieldByName('Codigo').AsString := FieldByName('Codigo').AsString; ClientDataSet2.FieldByName('CAMPO1').AsFloat := 0; ClientDataSet2.Post; Next; End; End; End; With ClientDataSet1 Do Begin ClientDataSet1.Close; ClientDataSet1.Commantext := ' Select * from TablaB'; ClientDataSet1.Open If Not Eof Then Begin First; While Not Eof Do Begin IF ClientDataSet2.Locate('Codigo', FieldByName('Codigo').AsString, []) Then Begin ClientDataSet2.Edit; //Este Cds no esta conectado a ningun provider //Solo lo utilizo para actializar datos en memoria ClientDataSet2.FieldByName('CAMPO1').AsFloat := FieldByName('CAMPO1').AsFloat; ClientDataSet2.Post; End; Next; End; End; End;
(Aproposito, el codigo aqui no importa, solo puse este de prueba para k se entienda mejor lo que queria explicar, pero si es la misma sintaxis y logica de lo que busco hacer.)
|
veamos yo veo que hay un ciclo redundante el if para mi esta demas, prueba asi:
Código Delphi
[-]
With ClientDataSet3 Do
Begin
Close;
ClientDataSet1.Commantext := ' Select * from TablaA';
Open;
First;
While Not Eof Do
Begin
ClientDataSet2.Append;
ClientDataSet2.FieldByName('Codigo').AsString := FieldByName('Codigo').AsString;
ClientDataSet2.FieldByName('CAMPO1').AsFloat := 0;
ClientDataSet2.Post;
Next;
End;
End;
With ClientDataSet1 Do
Begin
ClientDataSet1.Close;
ClientDataSet1.Commantext := ' Select * from TablaB';
ClientDataSet1.Open;
First;
While Not Eof Do
Begin
IF ClientDataSet2.Locate('Codigo', FieldByName('Codigo').AsString, []) Then
Begin
ClientDataSet2.Edit; ClientDataSet2.FieldByName('CAMPO1').AsFloat := FieldByName('CAMPO1').AsFloat;
ClientDataSet2.Post;
End;
Next;
End;
End;
a mi en lo personal, solo utilizaria el dataset para recoger el id del registro a modificar, y haria un Insert con un query o un update en el segundo ciclo, el tema de modificar directamente los datos del data set te suele provocar estos incomodos errorcillos