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 07-07-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Dudas genericas

Hola,

Sigo pasando una aplicacion a interbase 7, que estaba hecha para paradox 5. Utilizo delphi 6.

Tengo varias dudas, que la ayuda del delphi no me aclara del todo.
Exactamente, ¿cómo funcionan los enable/disablecontrol del delphi?
¿tengo que usarlo con los try ... finally...end...?
¿cómo funcionan lo bookmark?
¿si tengo un tGrid, conectado a una TIBTable, y hago un post en dicha tabla. ¿como hago para que se actualize mi tabla, y por tanto me muestre los cambios inmediatamente en el TGrid?

¿El procedure refresh, despues de este post, usando interbase 7, ¿me deja en el mismo registro?

Si no es así, ¿cómo hago para figar la tabla en el registro que acabo de crear, después del refresh? (esto es, por que después de guardar el registro, necesito tomar el valor de uno de sus campos, que es un campo auto incremental, para asignarlo a otro campo inmediatamente después).

Muchas gracias,

virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #2  
Antiguo 07-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Posteado originalmente por Giniromero
Exactamente, ¿cómo funcionan los enable/disablecontrol del delphi?
Con Tabla.EnableControls o Tabla.DisableControls

Cita:
Posteado originalmente por Giniromero
¿tengo que usarlo con los try ... finally...end...?
Preferiblemente. Si se produce un error en las sentencias que tengas entre el DisabledControls y el EnabledControls, siempre recuperaras el control de los controles

Cita:
Posteado originalmente por Giniromero
¿cómo funcionan lo bookmark?
Un ejemplo con Interbase
Código:
procedure ActualitzaTaula(DataSet : TDataSet; Transac : TIBTransaction);
var Marca : TBookmark;
begin
     Marca := DataSet.GetBookmark;
     Transac.CommitRetaining;
     DataSet.Close;
     DataSet.Open;
     DataSet.GotoBookmark(Marca);
end;
Cita:
Posteado originalmente por Giniromero
¿si tengo un tGrid, conectado a una TIBTable, y hago un post en dicha tabla. ¿como hago para que se actualize mi tabla, y por tanto me muestre los cambios inmediatamente en el TGrid?
Con un Commit o un CommitRetaining

Cita:
Posteado originalmente por Giniromero
¿El procedure refresh, despues de este post, usando interbase 7, ¿me deja en el mismo registro?
Si no recuerdo mal, sí (lo digo de memoria). Pero un Refresh no termina una transaccion, por lo que los valores dentro de la transacción no se actualizarán

Cita:
Posteado originalmente por Giniromero
Muchas gracias,
De nada
Responder Con Cita
  #3  
Antiguo 08-07-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Gracias por tu ayuda, pero ¿podrías ser más especifico en el funcionamiento de bookmark y lo de disable-enablecontrols?
Es que, en lo que más problemas tengo, es en que casos hay que usarlo, vamos, que es lo que hacen. Por que, en el help te dicen un poco de que van, pero no me queda claro, y creo que por ello, lo estoy usando algo mal.

Por otro lado, lo del commit o CommitRetaining, lo estoy usando dentro del evento AfterPost de las tablas, y en el evento AfterCancel, estoy poniendo el RollbackRetaining. ¿tengo que poner esto mismo secuencialmente después de un refresh, directamente dentro del código? Es que, como ya te comento, poniendolo dentro del event, no me lo está refrescando, y no se si es por como lo pongo, o que tal vez tengo que configurar mi transacción de algún modo en concreto, para que esto me funcione correctamente.

En cuanto a lo de poner try... finally...end... ¿puedo ponerlo para que, dentro de un procedure me afecte sólo a una parte del código, o me tiene que incluir todo el código menos los:


FrmVentana1 := TFrmVentana1.Create(Self);?

Muchisimas gracias por tu ayuda, una vez más.

Virginia Romero
__________________
Sonrie al mundo, y el mundo te sonreirá :)

Última edición por Giniromero fecha: 08-07-2003 a las 10:22:45.
Responder Con Cita
  #4  
Antiguo 08-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Posteado originalmente por Giniromero
¿podrías ser más especifico en el funcionamiento de bookmark
Bueno, el bookmark, lo que hace, es posicionarse de forma rapida en el numero de registro que tu le indicas. No es una busqueda, sino un registro relativo a la base de datos (no se si me he explicado)

Cita:
Posteado originalmente por Giniromero
y lo de disable-enablecontrols?
El DisableControls y EnableControls, yo al menos, suelo utilizarlo cuando tengo que realizar un proceso que recorre toda una tabla (o parte de ella) y no quiero que se vea el efecto de recorrido. Basicamente, lo que hace es habilitar/deshabilitar el "refresco" en los controles DataAware, es decir, es como si desligases el DataSource de tu TTable

Cita:
Posteado originalmente por Giniromero
Por otro lado, lo del commit o CommitRetaining, lo estoy usando dentro del evento AfterPost de las tablas, y en el evento AfterCancel, estoy poniendo el RollbackRetaining. ¿tengo que poner esto mismo secuencialmente después de un refresh, directamente dentro del código?
En principio, en poner un Commit/CommitRetaining o un Rollback/RollbackRetaining en los eventos que indicas, tendrias que tener suficiente para el refresco de tus tablas (siempre y cuando éstas estén dentro de la misma transaccion).

Cita:
Posteado originalmente por Giniromero
En cuanto a lo de poner try... finally...end... ¿puedo ponerlo para que, dentro de un procedure me afecte sólo a una parte del código, o me tiene que incluir todo el código menos los
Sí, sin problemas. Puedes hacer algo estilo...
Código:
procedure .....
var
begin
    .........
    Mis instrucciones fuera del try..finally..end
    .......
    try
       disablecontrols
    finally
        enablecontrols
    end;
    .........
    Mis instrucciones fuera del try..finally..end
    .......
end;
Espero te sirva
Responder Con Cita
  #5  
Antiguo 08-07-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
La verdad, me has aclarado muchas cosas que no terminaba de entender. sin embargo con ello se me han creado más dudas.

1) ¿puedo usar varios try.... finally... end dentro del mismo procedure?

esto es, si por ejemplo tengo un procedure que me gestiona varias tablas, y necesito hacer un disablecontrols a dos de ellas, en el mismo procedure, pero uno a continuacion de otro para tablas distintas... ¿podría?

2) podría ser, el hecho de que una tabla esté como disablecontrols, el motivo de que no funcione el refresco de datos, aunque tenga, en el evento afterpost, el commit de la transaccion, tal como comenté anteriormente?

Gracias por todo

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #6  
Antiguo 08-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Posteado originalmente por Giniromero
1) ¿puedo usar varios try.... finally... end dentro del mismo procedure?
Sí, he incluso si lo necesitas, anidar varios de ellos

Cita:
Posteado originalmente por Giniromero
2) podría ser, el hecho de que una tabla esté como disablecontrols, el motivo de que no funcione el refresco de datos, aunque tenga, en el evento afterpost, el commit de la transaccion, tal como comenté anteriormente?
Creo que no, en principio no tiene nada que ver el DisableControls con un update o insert en una tabla. Mas bien parece que las acciones sobre la tabla no esten en la misma transaccion
Responder Con Cita
  #7  
Antiguo 08-07-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Cita:
Posteado originalmente por cadetill
Creo que no, en principio no tiene nada que ver el DisableControls con un update o insert en una tabla. Mas bien parece que las acciones sobre la tabla no esten en la misma transaccion

Hola,

en principio si están en la misma transacción, pues sólo tengo una en la aplicación, y a ella están conectadas todas mis tablas.

En cualquier caso, te agradezco infinito tu ayuda. No saber cuanto me has ayudado. Ahora tengo que intentar ordenar todo esto, y ponerlo en práctica.

Gracias por todo,

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
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


La franja horaria es GMT +2. Ahora son las 13:54:32.


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