Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Validacion llave con ClientDataset (https://www.clubdelphi.com/foros/showthread.php?t=11703)

JOMABRI 22-06-2004 23:13:31

Validacion llave con ClientDataset
 
Hola foro, estoy actualizando 1 tabla de ciudades(codigo y nombre), la llave es el codigo. utilizo en query dbexpress, DataSetProvider, ClientDataSet y 1 Grid.

Anteriormente cuando el usuario digitaba codigos duplicados en el ClientDataSet, salia error de KEY VIOLATION, pero no se que parametro modifique por error y ya el error no me sale. Que debo hacer para que me valide de nuevo??


Gracias.

guillotmarc 23-06-2004 00:25:37

Hola.

Verifica que la llamada a ApplyUpdates la haces con el parámetro 0 y no -1.

Saludos.

JOMABRI 23-06-2004 14:17:32

Gracias Marc, pero no es en el applyUpdates. Es asi:

En el grid y ClientDataSet Tienes:

Codigo Nombre
1 Madrid


Y digitas en nuevo registro con el codigo 1 quedando el grid asi:

Codigo Nombre
1 Madrid
1 Barca

Cuando doy TAB en el campo nombre del segundo registro, me debe generar una excepcion de KEY VIOLATION.



Gracias.


Cita:

Empezado por guillotmarc
Hola.

Verifica que la llamada a ApplyUpdates la haces con el parámetro 0 y no -1.

Saludos.


guillotmarc 23-06-2004 18:13:10

Hola.

Pero es que el Key Violation es una excepción que se provoca en la base de datos, y al insertar un registro en el ClientDataset, no se envia a la base de datos hasta que no se llame al ApplyUpdates (momento en el que puede saltar esta excepción).

Para lo que quieres hacer, creo que tendrias que poner un ApplyUpdates en el evento AfterPost del ClientDataset. De esta forma cada vez que das de alta un registro, lo envias automaticamente a la base de datos, con lo que se comprueban la unicidad de los índices y puede saltar esa excepción.

Saludos.


La franja horaria es GMT +2. Ahora son las 18:15:21.

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