Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-07-2003
Tonio Tonio is offline
Miembro
 
Registrado: may 2003
Ubicación: Logroño
Posts: 111
Poder: 22
Tonio Va por buen camino
Key Violation

Uso dos tablas, exactamente iguales en campos, longitud, tipo etc., el contenido varía, en una hago un 'append', agrego un dato, hago 'post' y funciona, en la otra hago lo mismo y me dice 'Key Violation'.

He buscado y rebuscado diferencias, pero no hallo ninguna.

De hecho son 5 tablas, - lo del principo de dos tablas es que lo he hecho aparte con dos para probar,- quiero emplear el mismo Form para presentarlas en pantalla, por lo que al pulsar un botón cambio TableName e IndexName y aparecen en pantalla como yo deseo, cada una con sus datos, pero a la hora de agregar, dos funcionan y tres no.

El código es

Table1.Append;
Table1.FieldByName('Palabra').AsString := Edit1.Text;
Table1.FieldByName('Definicion').AsString := RE1.Text; // RE1 es un RichEdit
Table1.Post; // Aquí da el error.

Incluso escribiendo sobre la DBGrid y el DBMemo, al moverme en la tabla, hace lo mismo.

Sinceramentre mi mosqueo es que al ser un código tan simple me falle.
Gracias de antemano.
Un saludo
Tonio
Responder Con Cita
  #2  
Antiguo 28-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Hola Tonio:

Eso quiere decir que tienes un campo declarado como clave primaria y por algún motivo se repite.

Intenta abrir la tabla con otra herramienta y revisa a ver lo que contiene, el error tiene que venir por ahi.

Un Saludo.
Responder Con Cita
  #3  
Antiguo 28-07-2003
Tonio Tonio is offline
Miembro
 
Registrado: may 2003
Ubicación: Logroño
Posts: 111
Poder: 22
Tonio Va por buen camino
Gracias Marcos por la rápida y acertada respuesta.

Siguiendo tu consejo, he quitado dos campos que tenía en cada una de las tablas, uno incremental y otro numérico, y funciona.

Los campos no los usaba para nada en concreto, solamente al rellenarlas me hacian falta para contar el número de datos que introducia.

Ahora a indagar porqué ocurría.

Gracias de nuevo y un saludo.
Tonio
Responder Con Cita
  #4  
Antiguo 28-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Hola otra vez Tonio:

Creo que el autonumérico no sería, pues el solo se va incrementando y normalmente no se repetirá nunca.

Pero el otro campo que dices que has quitado, es posible que también fuese índice de tipo único, y sino introduces ningún número la segunda vez que intentes dar un alta ya estará repetido.

Y si introduces números entonces tendrás que tener cuidado de que no se repitan, por ejemplo usando un contador que puedes guardar en otra tabla y que irías incrementando en 1.

Otra solución sería mediante SQL.

Un Saludo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:08:36.


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
Copyright 1996-2007 Club Delphi