Estimado Roman:
Te agradezco el interes mostrado al contestar mi pregunta. Te explico, tengo una tabla en mysql, la cual contiene como 15 campos. Para facilitarme la navegacion, no trabajo directamente sobre el dbgrid, y los valores de cada campo, los coloco en un edit box respectivamente,( de esta forma puedo ver los 15 campos al mismo tiempo, cosa que trabajando directamente sobre el dbgrid, debo presionar las flechitas hasta que aparezca el campo deseado. en pocas palabras, se pierde tiempo.)
Código Delphi
[-]
labelededit1.Text:=myquery1.FieldValues['clave'];
labelededit2.Text:=myquery1.FieldValues['clalt'];
labelededit3.Text:=myquery1.FieldValues['producto'];
labelededit4.Text:=myquery1.FieldValues['mexico'];
labelededit5.Text:=myquery1.FieldValues['puebla'];
labelededit6.Text:=myquery1.FieldValues['dolar'];
labelededit7.Text:=myquery1.FieldValues['ppesos'];
labelededit8.Text:=myquery1.FieldValues['garantia'];
labelededit9.Text:=myquery1.FieldValues['garantiaps'];
labelededit10.Text:=myquery1.FieldValues['ua'];
labelededit13.Text:=myquery1.fieldvalues['porc'];
label9.Caption:=myquery1.FieldValues['mpcr'];
Cuando modifico el valor de un campo hago lo siguiente
Código Delphi
[-]
myquery1.Edit;
myquery1.FieldValues['dolar']:=labelededit6.Text;
myquery1.FieldValues['ultmodif']:=DateToStr(Now);
myquery1.Post;
de tal forma que esta accion se refleja en el dbgrid haciendo que el fondo del registro activo se coloree de amarillo, mediante el siguiente codigo en el evento ondrawcolumncell del dbgrid
Código Delphi
[-]
if MyQuery1.UpdateResult in [uaFail,uaSkip] then
TCRDBGrid(Sender).Canvas.Brush.Color:= clRed
else
if MyQuery1.UpdateStatus <> usUnmodified then
begin
TCRDBGrid(Sender).Canvas.Brush.Color:= clYellow;
button3.Enabled:=True;
end;
TCRDBGrid(Sender).DefaultDrawColumnCell(Rect, Datacol, Column, State);
en este punto yo tengo la opcion (como la tabla esta en modo cachedupdates) de cancelar o de aplicar los cambios, mediante un boton. En Ambos casos, debo hacer un myquery.refreshrecord (antes hacia myquery.refresh y funcionaba perfecto, pero como actualize la version de los componentes mydac, aahora esto me causa un error de access violation), para actualizar los datos. el problema es que el fondo registro en el dbgrid, queda amarillo,y lo que quiero es que si se cancela la actualizacion, el fondo vuelva a su color blanco, y si se procede con applyupdates, dejar otro color distinto para saber que ese registro se actualizo.
Espero no me haya excedido explicando, soy novaton en esto
Gracias de antemano