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)
-   -   Violation key (https://www.clubdelphi.com/foros/showthread.php?t=31717)

maravert 16-05-2006 04:12:01

Violation key
 
Que tal, estoy pasando datos de una tabla (Table2 que esta asociada a un DbGrid) y datos que se generan por codigo a otra tabla (Table5)

He tratado de hacer los iguiente



Código Delphi [-]table5.FiledByName ('cant').asfloat := table2.Filedbyname ('cant').asFloat;





Pero me da el error siguiente

Violation key

Entonces trate de mandar los datos de la table2 a un Arreglo y pase a una variable el numero de registros de esa Tabla (Table2) a reg, pero me sigue mandando el mismo error. Violation key Coloque unos mensajes PARA SABER DONDE esta el proceso y vì que el cilo solo se repite una vez, independientemente de que la variable reg sea mayor a 1.


Código Delphi [-]for filas := 1 to reg do
begin
table5.Append;
showMessage ('pasara');
table5.FieldByName('TIP_REG').VALUE := 2;

...

showmessage ('grabe');
table5.FieldByName('TIP_DOC').AsString := 'P';
SHOWMESSAGE ('llegue al final');
table5.clearFields;
end;
table5.Close;








Espero me ayuden, llevo 3 dìas con este problema y no he encontrado la soluciòn.

Gracias

Alemar.

vtdeleon 16-05-2006 04:53:35

Al final, table5.Close; no esta donde debe, deberia estar antes del end;. Aunque diria que el compilador te advertiria de tal error.:confused:
Y otra cosa, para que usas table5.clearFields;?? con que proposito final.
Puedes encontrar suficienteo informacion de lo errores de Key violation aqui mismo. Bastante se ha tratado.

Saludos

mariofur 17-05-2006 09:45:53

Que yo sepa el key violation sucede cuando estás poniedo el mismo valor a un campo clave (key).

Solución : Haz más campos clave para que no se repita el registro, o elimina campos clave.

Sick boy 17-05-2006 12:00:50

Lo que sucede es justamente lo que dice mariofur.

El problema es que no estas gestionando el campo clave (supongo que es el que utilizas para el indice primario).
Este indice primario debe ser unico.

Otro problema es que aunque el campo no forme parte de un indice, puede que al crear la tabla lo hayas marcado como unico.

Con los datos que nos das, es imposible saber lo que sucede.

Saludos


La franja horaria es GMT +2. Ahora son las 11:35:58.

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