Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

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: 24
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: 24
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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:25:31.


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