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 19-01-2007
Pitilingorri Pitilingorri is offline
Miembro
 
Registrado: ene 2007
Posts: 18
Poder: 0
Pitilingorri Va por buen camino
Problemas al actualizar Access

Tengo una aplicación en Delphi que trabaja sobre unas tablas access utilizando ADO. El problema es que al actualizar un registro, me sale el siguiente mensaje de error:

"No se puede encontrar la fila para la actualización: algunos valores han cambiado desde la última vez que se leyó"

Lo más curioso es que si creo un nuevo elemento en la tabla, y lo intento actualizar, no me sale este error. En algun sitio me han dicho que el problema podria estar en meter un valor predeterminado, pero los he borrado en todos los campos, y me sigue dando error.

Para la aplicacion uso TADOtable's, un TDBGrid, un tDBNavigator, y algunos TDBEdit y TDLookUpCombobox para mostrar los los datos de la fila del grid seleccionada.


¿Alguna idea? Gracias de antemano por vuestra ayuda

Última edición por Pitilingorri fecha: 19-01-2007 a las 12:00:32.
Responder Con Cita
  #2  
Antiguo 19-01-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿La tabla tiene clave primaria? Ya se que parece que no tiene que ver nada con el error, pero me suena hace tiempo haber leído sobre esto...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 19-01-2007
Pitilingorri Pitilingorri is offline
Miembro
 
Registrado: ene 2007
Posts: 18
Poder: 0
Pitilingorri Va por buen camino
Cita:
Empezado por Neftali
¿La tabla tiene clave primaria? Ya se que parece que no tiene que ver nada con el error, pero me suena hace tiempo haber leído sobre esto...
Si, tiene clave primaria.
Una cosa que se me habia olvidado comentar es que hay una relación maestro-detalle con otra tabla...quizas esto os pueda ayudar.

Última edición por Pitilingorri fecha: 19-01-2007 a las 12:36:34.
Responder Con Cita
  #4  
Antiguo 25-01-2007
Pitilingorri Pitilingorri is offline
Miembro
 
Registrado: ene 2007
Posts: 18
Poder: 0
Pitilingorri Va por buen camino
Question

Bueno ,voy a aportar más datos para ver si alguien me ayuda a solucionar el problema. Resulta que el error da en un tipo especifico de campo de la tabla access, concretamente en un campo de tipo numerico, con tamaño de campo Decimal y escala 2. Si pongo la escala a 0 no me da ningún problema, pero necesito meter numeros con decimales en ese campo. ¿Alguna idea?
Responder Con Cita
  #5  
Antiguo 25-01-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Este error suele dar siempre cuando no hay clave primaria, tal como ha indicado Neftali.
Si indicas la estructura de las tablas, igual podemos ayudarte.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 29-01-2007
Pitilingorri Pitilingorri is offline
Miembro
 
Registrado: ene 2007
Posts: 18
Poder: 0
Pitilingorri Va por buen camino
Cita:
Empezado por fjcg02
Este error suele dar siempre cuando no hay clave primaria, tal como ha indicado Neftali.
Si indicas la estructura de las tablas, igual podemos ayudarte.

Un saludo
La estructura de la tabla "problematica" es la siguiente:

Codigo_material: Autonumerico. La tengo como clave principal

Codigo_sondeo:Numerico (Entero largo). Este campo lo uso para con el que hago una relación maestro detalle con otra tabla cuya clave principal es Codigo_sondeo (Que es autonumerico)

Material: Numerico (Entero)

Profundidad_ini: Numerico (Decimal)

Profundidad_fin: Numerico (Decimal)
Tipo: Numerico (Entero)
Responder Con Cita
  #7  
Antiguo 29-01-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Puedes poner las líneas de código que utilizas para buscar y actualizar?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 29-01-2007
Pitilingorri Pitilingorri is offline
Miembro
 
Registrado: ene 2007
Posts: 18
Poder: 0
Pitilingorri Va por buen camino
Cita:
Empezado por Neftali
¿Puedes poner las líneas de código que utilizas para buscar y actualizar?
Para buscar y actualizar uso un dbgrid y un dbNavigator. Las modificaciones las hago sobre dos dbedit y dos dbLookUpCombobox, no sobre el dbgrid
Responder Con Cita
  #9  
Antiguo 29-01-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Pitilingorri
Las modificaciones las hago sobre dos dbedit y dos dbLookUpCombobox
¿Esos componentes están "ligados" a la misma fuente de Datos del DBGrid (Tabla o consulta)?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 29-01-2007
Pitilingorri Pitilingorri is offline
Miembro
 
Registrado: ene 2007
Posts: 18
Poder: 0
Pitilingorri Va por buen camino
Cita:
Empezado por Neftali
¿Esos componentes están "ligados" a la misma fuente de Datos del DBGrid (Tabla o consulta)?
Efectivamente, están ligados a la misma tabla ¿Puede ser este el problema? Lo digo porque, como he comentado antes, si el el campo Profundidad_ini pongo escala 0, no me da problemas, aunque nom e deja meter decimales.
Responder Con Cita
  #11  
Antiguo 30-01-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Has probado tanto con el punto(.), como con la coma(,) para el separador decimal?
¿Exactamente cómo está definido el campo en la tabla?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #12  
Antiguo 30-01-2007
Pitilingorri Pitilingorri is offline
Miembro
 
Registrado: ene 2007
Posts: 18
Poder: 0
Pitilingorri Va por buen camino
Cita:
Empezado por Neftali
¿Has probado tanto con el punto(.), como con la coma(,) para el separador decimal?
¿Exactamente cómo está definido el campo en la tabla?
Solo me deja usar comas como separador decimal, no admite el punto.

En Delphi los campos problematicos están definidos como TBCDField.
En Access, si seleccionamos el campo en vista de diseño, en la pestaña general aparece lo siguiente:

Tamaño del campo: Decimal
Formato:
Precisión: 18
Escala: 2
Lugares decimales: Automático
...
Requerido: Si
Indexado: No

Lo curioso es que si en Escala pongo el valor 0, no me da ningún problema, pero aunque meta decimales en la aplicación, después estos decimales no aparecen.


P.D.: Aunque no consiga hallar el error, os agradezco vuestra ayuda.
Responder Con Cita
  #13  
Antiguo 14-02-2007
Pitilingorri Pitilingorri is offline
Miembro
 
Registrado: ene 2007
Posts: 18
Poder: 0
Pitilingorri Va por buen camino
Thumbs up

Bueno, finalmente he hallado la solución. que por cierto es bastante "simple"
He cambiado el tamaño de campo de decimal a simple, y con eso me ha dejado de dar problemas. Espero que a alguien le sirva esta solución en el futuro.

De todos modos, muchas gracias por vuestra ayuda, ya que aunque no me ha dado la solución final, me ha ayudado a descartar otro tipo de errores.
Responder Con Cita
  #14  
Antiguo 19-02-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Problema resuelto ???

Mirá es ilógica la solución que encontraste y de hecho no fue eso lo que te solucionó el problema, sino que tendrías algún combo o grid que perdía la relación con el registro que actualizabas, 'donde tenías el datafield', éste se actualizaba o algun campo se actualizaba antes de que realices el update/Post de la tabla, entonces lógicamente perdías el valor original del registro.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar campo en access javieron Conexión con bases de datos 2 17-12-2006 12:52:54
Problemas al actualizar IBQuery Isnel Firebird e Interbase 4 30-11-2006 20:11:42
problemas al actualizar por segunda vez @-Soft Tablas planas 2 07-09-2006 19:53:22
Problemas al actualizar en dbgrid oscjae Firebird e Interbase 1 01-12-2005 15:14:30
Problemas al actualizar un TClientDataset y ADO PEDRO_PASAMAR Conexión con bases de datos 1 30-11-2004 10:52:46


La franja horaria es GMT +2. Ahora son las 09:28:59.


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