FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Key Violation
Buenas tardes a todos/as, os cuento mi problema...
Al pulsar el botón de editar, donde sólo edito la tabla y acontinuación pulso el botón de grabar, me da un key violation, que me está dando dolores de cabeza... alguién que me pueda ayudar. Salu2. |
#2
|
||||
|
||||
Hola Alsaca,
¿Podrías ser más detallado/a? Ese error puede ser porque ya existe esa clave, o porque no se añadió la clave... o porque Saturno está en fase con la Tierra. Pueden ser muchas las causas. Sin mayores detalles por tu parte no te sabríamos decir como ayudarte. Espero que comprendas que es necesario que nos indiques tu base de datos, componentes que empleas, y un poco del código que utilizas. A ciegas, lo único que podemos hacer es estar adivinando. Lo malento si te molesta, pero es que mi bola de cristal me está fallando. Saludos, |
#3
|
||||
|
||||
Evidentemente el error Key Violation te indica que se esta intentando duplicar la llave primaria de tu archivo (tabla) como te dice el amigo Delphius deberias dar mas datos:
Que tipo de base de datos usas (sql, interbase, oracle,etc) Que tipo de dataset usas (TQuery, TTable, TAdotable, etc) algun ejemplo de tu codigo Con esa información adicional veras que pronto saltaran las respuestas que te ayudaran a resolver tu problema. Saludos P.D. Cita:
Yo tengo 2 pero no son de cristal.... |
#4
|
|||
|
|||
Perdonad, por explicarlo tan básicamente....
Tabla Paradox. Clave principal Cod_cli Botón Editar tclient.edit; altacli.Enabled:=false; bitbtn13.Enabled:=false; bitbtn14.enabled:=false; dbedit2.Enabled:=true; dbedit3.Enabled:=true; dbedit4.Enabled:=true; dbedit5.Enabled:=true; dbedit6.Enabled:=true; dbedit7.Enabled:=true; dbedit8.Enabled:=true; dbedit9.Enabled:=true; dbedit10.Enabled:=true; dbedit15.Enabled:=true; dbedit18.Enabled:=true; dbedit13.Enabled:=true; Date1.enabled:=true; Date2.enabled:=true; Date3.enabled:=true; Date4.enabled:=true; dbedit16.enabled:=true; dbedit17.Enabled:=true; bitbtn4.Enabled:=true; bitbtn5.Enabled:=false; bitbtn6.Enabled:=false; dbedit14.Enabled:=true; date5.Enabled:=true; date6.enabled:=true; dbedit19.Visible:=false; dbedit20.Visible:=false; dbedit21.Visible:=false; dbedit22.Visible:=false; dbedit23.Visible:=false; dbedit24.Visible:=false; bitbtn4.Enabled:=true; Botón grabar tclient.FieldByName('F_exp').asdatetime:=date1.Date; tclient.FieldByName('F_cad').asdatetime:=date2.Date; tclient.FieldByName('F_segexp').asdatetime:=date3.Date; tclient.FieldByName('F_segcad').asdatetime:=date4.Date; tclient.FieldByName('F_expe').AsDateTime:=date5.Date; tclient.FieldByName('F_cade').asdatetime:=date6.date; tclient.FieldByName('F_alta').AsDateTime:=date7.Date; tclient.Post; altacli.Enabled:=true; date7.enabled:=false; bitbtn4.enabled:=false; date1.Enabled:=false; date2.Enabled:=false; date3.Enabled:=false; date4.Enabled:=false; dbedit1.Enabled:=false; dbedit2.Enabled:=false; dbedit3.Enabled:=false; dbedit4.Enabled:=false; dbedit5.Enabled:=false; dbedit6.Enabled:=false; dbedit7.Enabled:=false; dbedit8.Enabled:=false; dbedit9.Enabled:=false; dbedit10.Enabled:=false; dbedit13.Enabled:=false; dbedit16.Enabled:=false; dbedit17.Enabled:=false; bitbtn5.enabled:=true; bitbtn6.enabled:=true; dbedit14.Enabled:=false; date5.Enabled:=false; date6.Enabled:=false; dbedit15.Enabled:=false; dbedit18.enabled:=false; tclient.Close; Botón Consulta tclient.Close; dbedit2.Text:=''; dbedit3.Text:=''; dbedit4.Text:=''; dbedit5.Text:=''; dbedit6.Text:=''; dbedit7.Text:=''; dbedit8.Text:=''; dbedit9.Text:=''; dbedit10.Text:=''; dbedit11.Text:=''; dbedit13.Text:=''; dbedit15.Text:=''; dbedit16.Text:=''; dbedit17.Text:=''; dbedit18.Text:=''; dbedit19.Text:=''; dbedit20.Text:=''; dbedit21.Text:=''; dbedit22.Text:=''; dbedit23.Text:=''; dbedit24.Text:=''; fbuscli:=tfbuscli.create(self); fbuscli.tclient.active:=true; fbuscli.showmodal; tclient.Open; tclient.edit; tclient.FieldByName('Cod_cli').Asstring:=fbuscli.tclient.fieldbyname('Cod_cli').asstring; tclient.FieldByName('f_alta').Asdatetime:=fbuscli.Tclient.fieldbyname('f_alta').Asdatetime; tclient.FieldByName('nomb').AsString:=fbuscli.Tclient.fieldbyname('nomb').AsString; tclient.FieldByName('apelli').AsString:=fbuscli.Tclient.fieldbyname('apelli').AsString; tclient.FieldByName('direc').AsString:=fbuscli.Tclient.fieldbyname('direc').AsString; tclient.FieldByName('local').AsString:=fbuscli.Tclient.fieldbyname('local').AsString; tclient.FieldByName('provi').AsString:=fbuscli.Tclient.fieldbyname('provi').AsString; tclient.FieldByName('cpostal').AsString:=fbuscli.Tclient.fieldbyname('cpostal').AsString; tclient.FieldByName('dni').AsString:=fbuscli.Tclient.fieldbyname('dni').AsString; tclient.FieldByName('telf').AsString:=fbuscli.Tclient.fieldbyname('telf').AsString; tclient.FieldByName('movil').AsString:=fbuscli.Tclient.fieldbyname('movil').AsString; tclient.FieldByName('n_permi').AsString:=fbuscli.Tclient.fieldbyname('n_permi').AsString; tclient.FieldByName('f_exp').Asdatetime:=fbuscli.Tclient.fieldbyname('f_exp').Asdatetime; tclient.FieldByName('f_cad').Asdatetime:=fbuscli.Tclient.fieldbyname('f_cad').Asdatetime; tclient.FieldByName('tipo').AsString:=fbuscli.Tclient.fieldbyname('tipo').AsString; tclient.FieldByName('nomb_seg').AsString:=fbuscli.Tclient.fieldbyname('nomb_seg').AsString; tclient.FieldByName('n_segur').AsString:=fbuscli.Tclient.fieldbyname('n_segur').AsString; tclient.FieldByName('f_segexp').Asdatetime:=fbuscli.Tclient.fieldbyname('f_segexp').Asdatetime; tclient.FieldByName('f_segcad').Asdatetime:=fbuscli.Tclient.fieldbyname('f_segcad').Asdatetime; tclient.FieldByName('n_pere').AsString:=fbuscli.Tclient.fieldbyname('n_pere').AsString; tclient.FieldByName('f_expe').Asdatetime:=fbuscli.Tclient.fieldbyname('f_expe').Asdatetime; tclient.FieldByName('f_cade').Asdatetime:=fbuscli.Tclient.fieldbyname('f_cade').Asdatetime; tclient.FieldByName('tipo1').AsString:=fbuscli.Tclient.fieldbyname('tipo1').AsString; altacli.Enabled:=false; dbedit15.visible:=true; dbedit18.Visible:=true; date7.Visible:=false; dbedit11.Enabled:=false; dbedit11.visible:=true; bitbtn1.Enabled:=true; bitbtn3.Enabled:=true; dbedit18.enabled:=false; dbedit19.Visible:=true; dbedit20.Visible:=true; dbedit21.Visible:=true; dbedit22.visible:=true; dbedit23.Visible:=true; dbedit24.Visible:=true; dbedit19.enabled:=false; dbedit20.enabled:=false; dbedit21.enabled:=false; dbedit22.enabled:=false; dbedit23.enabled:=false; dbedit24.enabled:=false; borrar.Enabled:=true; bitbtn13.enabled:=false; bitbtn14.Enabled:=false; fbuscli.Free; Primero hago una busqueda, pulsando el botón de consulta y lo añado al form principal, luego paso a editar y por último accedo a grabar y.... KEY VIOLATION. Gracias por el interés y un saludo. |
#5
|
|||
|
|||
el fbuscli usa el locate o el lookup? el locate reposiciona el cursor en la tabla...
|
#6
|
|||
|
|||
la busqueda la hago utilizando Setkey y Gotonearest.
Gracias. |
#7
|
|||
|
|||
el gotonearest tb reposiciona el cursor. Prueba de conseguir los datos antes del tclient.edit, a ver q pasa (primero los cargas en unas variables, luego tclient.edit, y los pones y post)
PD : tclient.FieldValues['...'] := en vez de tclient.FieldByName('...').As . Creo q estas copiando el objeto en si mismo, no el valor q contiene. Última edición por coso fecha: 15-05-2008 a las 23:23:31. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Violation key | maravert | Conexión con bases de datos | 3 | 17-05-2006 12:00:50 |
Key violation | jmedina | Conexión con bases de datos | 3 | 18-06-2004 22:08:40 |
Key Violation | servicomp | Tablas planas | 6 | 15-05-2004 06:23:44 |
key violation | miguelb | Varios | 0 | 31-10-2003 18:29:54 |
Key Violation | Tonio | Conexión con bases de datos | 3 | 28-07-2003 18:57:26 |
|