Hola gente...
Aqui de nuevo, molestando con este componente...
Mi escenario :
WinXP con SPK2
Delphi 5 Ent.
Tablas DBF con indices CDX.
El problema:
Tengo en un form una DBGrid que me muestra el resultado de una TQuery
hecha a tablas DBF que funciona perfecto :
SELECT Precios.ARTICULO,
Precios.PRECIO,
Talleres.NOMBRE
FROM "PRECIOS.DBF" Precios
INNER JOIN "TALLERES.DBF" Talleres
ON (Talleres.CODIGO = Precios.TALLER)
WHERE Precios.ARTICULO = :cArticulo
ORDER BY Talleres.NOMBRE, Precios.PRECIO
Esta Query tiene asociado un UpdateSQl que tiene el código de inserción,
modificación y borrado de datos de las cuales sólo uso la de
modificación :
Modify :
--------
update "PRECIOS.DBF"
set
PRECIO = :PRECIO
where
ARTICULO = :OLD_ARTICULO
El código de actualización :
With sqlPrecios Do
Begin;
DisableControls ;
Edit ;
FieldByname('PRECIO').AsFloat := StrToFloat(edtPrecio.Text);
Post ;
ApplyUpdates ;
CommitUpdates;
EnableControls ;
End;
Y el problema surge cuando hago una actualización, si la consulta tiene
un solo registro, no hay problema, pero si la consulta tiene mas de un
registro, al aplicar el ApplyUpdates me sale un mensaje de "Update
failed", mostrandome en el DBGrig sólo el primer registro actualizado,
pero si me fijo en la tabla, los valores se cambiaron (al menos asi me
lo muestra la consulta si la vuelvo a hacer de nuevo).Lo que quiero,
justamente, es que me cambie el dato del campo 'PRECIO' en todos los
registros que me muestra la Query.
¿Que estoy haciendo mal...?
Agradesco la ayuda.
Saludos.
Walter.