FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
¿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. |
#3
|
|||
|
|||
Cita:
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. |
#4
|
|||
|
|||
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?
|
#5
|
||||
|
||||
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 - |
#6
|
|||
|
|||
Cita:
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) |
#7
|
||||
|
||||
¿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. |
#8
|
|||
|
|||
Cita:
|
#9
|
||||
|
||||
Cita:
__________________
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. |
#10
|
|||
|
|||
Cita:
|
#11
|
||||
|
||||
¿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. |
#12
|
|||
|
|||
Cita:
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. |
#13
|
|||
|
|||
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. |
#14
|
|||
|
|||
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.
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
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 |
|