Foros Club Delphi

Foros Club Delphi (http://www.clubdelphi.com/foros/index.php)
-   Varios (http://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error de PK al hacer ApplyUpdates en Delphi+DBExpress (http://www.clubdelphi.com/foros/showthread.php?t=91619)

alopete 20-03-2017 16:12:49

Error de PK al hacer ApplyUpdates en Delphi+DBExpress
 
Buenas tardes,

Trabajo con Delphi y utilizo componentes DBExpress para acceder a la BBDD. Tengo una tabla cuya Primary Key está compuesta por los campos PEDIDO (integer) y POS (char(4)), y para trabajar sobre esa tabla tengo un SQLQuery, un DataProvider y un ClientDataSet.

Tengo un formulario de Delphi en el que me muestra las líneas de un pedido y permito añadirlas y eliminarlas. Al eliminarlas (ClientDataSet.Delete) recalculo el campo POS (ClientDataSet.Edit-ClientDataSet.Post) de las líneas posteriores a la borrada. Por ejemplo, si tengo las posiciones 1º-'0001', 2º-'0002', 3º-'0003', 4º-'0004' y 5º-'0005' y borro la '0003' tendrían que quedar 1º-'0001', 2º-'0002', 4º-'0003', 5º-'0004'.

El problema que tengo es que al hacer ApplyUpdates sobre el ClientDataSet me da error de Primary Key. He estado poniendo trazas en el código, como por ejemplo mostrando mensajes del UpdateKind en el evento BeforeUpdateRecord de mi DataProvider, y me he dado cuenta de que se lía porque hace un UPDATE antes de la DELETE y eso genera conflictos con la PK. No sé cómo controlar el orden de las sentencias, ¿alguna sugerencia?

Gracias de antemano.
Un saludo.


La franja horaria es GMT +2. Ahora son las 03:22:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi