Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-11-2007
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 22
joanajj Va por buen camino
error al modificar registro con firebird

Buenas a todos después de tanto tiempo...

Tengo una base de datos en Firebird 2.0 y uso los componentes MDO para el tratamiento de los datos.
La aplicación funciona correctamente salvo cuando intento modificar un registro.
Al modificar un registro:

xxxx.edit;
xxxx.campo.value:=nuevo valorM;
xxxx.post;

Lo hace sin error, pero al cerrar la BD y volver a abrirla, veo que no se ha modificado, pero sobre la marcha hago la modificación de nuevo y al cerrar y abrir, si que se ven los cambios.
El problema es ese, porque tengo que cerrar la BD , volver a abrirla para hacer la modificacuión y que se vean los cambios.
He probado a hacer el commit antes de modificar y nada de nada...

No sé por que puede seer, alguien tiene una idea....???

Gracias...
Responder Con Cita
  #2  
Antiguo 04-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
El objeto TMDOTransaction tiene la propiedad AutoCommit, ponla a true. Así después de guardar un dato, se hace el commit automático (entre otras cosas).

Cita:
He probado a hacer el commit antes de modificar y nada de nada...
Se debe hacer después de las modificaciones. Deberías leer sobre cada tipo de transacciones, en www.ibphoenix.com y www.firebird.com.mx también sobre commit, commitRetaining, para que decidas lo que mejor te conviene.

No haría falta cerrar la BD, sino el Dataset donde has hecho el cambio y volverlo a abrir, de nuevo esto depende del uso de commit o bien CommitRetaining.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 06-11-2007
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 22
joanajj Va por buen camino
sigue sin funcionar

Buenas de nuevo, la cosa sigue igual.

Hasta que no hago el proceso de modificación 2 veces no se reflejan los cambios.
He probado todo lo que se me ocurre y nada.

El proceso de nuevo registro funciona correctamente,, pero el de modificar ,. que se diferencia de añadir por el 'append', que en el caso de modificar cambia el valor del registro actual., no funciona, tengo que hacer el mismo proceso 2 veces para que funcione.

Se os ocurre algo más ????

Un saludo...
Responder Con Cita
  #4  
Antiguo 06-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Mira sobre todo el evento AfterScroll y beforePost, por si tienes algún código que cancele el guardado.

Los MDO funcionan perfectamente. Pon el código que usas para editar el registro, igual vemos algo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 09-11-2007
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 22
joanajj Va por buen camino
os paso el código

Esto es lo que hace al modificar:

Código:
form1.dataarq.Edit;

 form1.dataarqFECHAAR.value:=fech1.Date;
 form1.dataarqCONCEPTOAR.Value:=coned.Text;
 if cob.Checked=true then
  begin
   form1.dataarqENTRADAAR.AsFloat:=imped.Value;
   form1.dataarqSALIDAAR.Value:=0;
   end
   else
   begin
   form1.dataarqsalidaar.AsFloat:=imped.Value;
   form1.dataarqENTRADAAR.Value:=0;
  end;
 form1.dataarq.Post;
y para que los datos queden almacenados tengo que aplicar la modificación,
abrir y cerrar el dataset, volver a realizar la misma modificación por 2ª vez y entonces es cuando se quedan grabados los datos modificados...

No sé que probar...Saludos...
Responder Con Cita
  #6  
Antiguo 09-11-2007
tefots tefots is offline
Miembro
 
Registrado: feb 2005
Posts: 108
Poder: 20
tefots Va por buen camino
haz doble click sobre el mdotransacction , y ponle read commited.

Despues de hacer el form1.dataarq.Post;
haz un form1.dataarq.transaction.commitretaining.


si tienes algun otro dataset que este usando esa tabla , deberas hacerle un refresh o cerrarlo y abrirlo para que ese dataset refresque los datos.

saludos.
Responder Con Cita
  #7  
Antiguo 09-11-2007
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 22
joanajj Va por buen camino
Lo he intentado y nada...

He hecho lo que me han dicho y sigue sin funcionar, una cosa tan elemntal y no vá.

Una pista más:

En el ModifiSQL del Mdodataset figura:

Código:
UPDATE ARQUEO1
SET
  FECHAAR = :FECHAAR,
  CONCEPTOAR = :CONCEPTOAR,
  ENTRADAAR = :ENTRADAAR,
  SALIDAAR = :SALIDAAR,
  CUENTO = :CUENTO
WHERE
  CUENTO = :OLD_CUENTO
Por si sirve de algo....

Gracias....
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
Modificar registro Elite237 OOP 4 03-08-2007 05:27:21
Modificar un Registro en un TMDOQuery KAYO Firebird e Interbase 4 30-07-2007 23:43:02
Error al insertar un registro en Firebird mateamargo Conexión con bases de datos 4 12-06-2005 15:52:36
Como modificar un registro? Telemaco Conexión con bases de datos 4 20-02-2004 17:45:48
modificar olo un registro Irina SQL 1 26-05-2003 14:41:59


La franja horaria es GMT +2. Ahora son las 01:52:40.


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