Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2003
fortran fortran is offline
Miembro
 
Registrado: may 2003
Ubicación: Asturias
Posts: 63
Poder: 21
fortran Va por buen camino
Ir al último registro de una tabla

Hola a todos:

Supongo que a mas de uno esta pregunta le parecerá de chiste, pero a mi me lleva por la calle de la amargura.

Trabajo con Paradox, D5 y WXP. Lo que quiero es ir y posicionarme directamente en el último registro de una tabla para mirar ahí una serie de índices. Para ello estoy tratando de usar el procedimiento Last.

Hago TablaVisitas.Last;

Pero cuando voy a mirar sigo estando en el primer registro de la tabla. Ya se que podría ir recorriendo uno a uno todos los registros y pararme en el último, pero todo parece indicar que estoy haciendo algo mal con el procedimiento Last. ¿Alguien me podría decir que estoy haciendo mal?.

Código:
Procedure ActualizarTablaVisitas;
var
   aux : integer;
Begin

// Ir al último Lugar de la tabla
   with modulodedatos do
   Begin
     Tablavisitas.last;
     aux := tablavisitasindice_visitas.value; //para comprobar que estoy en el último
     // aquí hay mas código
   End;
End;
Gracias por vuestra atención.
__________________
- ¿Y cuando dejaré de aprender maestro?.

- El día que te mueras pequeño saltamontes.
Responder Con Cita
  #2  
Antiguo 04-09-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tendría que funcionarte, por qué no pones una rejilla conectada a la tabla y un botón con ModuloDeDatos.TablaVistas.Last;

Y así ves si efectivamente vas al final y cuando ocurre el fallo que comentas, puede ocurrir que el contenido del último registro sea igual que el del primero y te esté confundiendo?

Un Saludol.
Responder Con Cita
  #3  
Antiguo 04-09-2003
fortran fortran is offline
Miembro
 
Registrado: may 2003
Ubicación: Asturias
Posts: 63
Poder: 21
fortran Va por buen camino
Bufff, ya se cual es el problema. El problema es que TablaVisitas es una tabla de detalle de otra llamada TablaClientes... y por lo visto no se mueve de los registros asociados al cliente. La verdad es que no tengo muy claro como solucionarlo... agradeceré cualquier ayuda y si se me ocurre algo lo postearé aquí.

Únicamente quiero ir al último registro para mirar el Indice_visita que tiene (un índice que quiero incrementar manualmente cada vez que hago una visita) y después hacer un append con otro registro e Indice_visita := Indice_visita + 1.


Muchas gracias
__________________
- ¿Y cuando dejaré de aprender maestro?.

- El día que te mueras pequeño saltamontes.
Responder Con Cita
  #4  
Antiguo 04-09-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Muy sencillo, desengancha temporalmente la relación maestro detalle y ya lo tienes.

Se hace guardando el valor en una variable, poniendola nul y luego recuperándola cuando sea preciso.

solución más facil utilizar un segundo Ttable sin relación maestro detalle.

Un Saludo.
Responder Con Cita
  #5  
Antiguo 05-09-2003
fortran fortran is offline
Miembro
 
Registrado: may 2003
Ubicación: Asturias
Posts: 63
Poder: 21
fortran Va por buen camino
Perdona Marcos pero no se muy bien como hacerlo:

He intentado esto pero no me lo permite:

Código:
var
   aux : integer;
   nueva : TTable;
Begin

// Ir al último Lugar de la tabla
   with modulodedatos do
   Begin
     nueva.create(application);
     nueva.mastersource := tablavisitas.MasterSource;
     Tablavisitas.MasterSource := null;
     Tablavisitas.last;
     aux := tablavisitasindice_visitas.value; //para comprobar que estoy en el último
     Tablavisitas.mastersource := DatasourceClientes;
   End;
End;
Pero me dice que los tipos Tdatasource y variant son incompatibles al intentar hacer Tablavisitas.mastersource := null;

Gracias por tomarte la molestia de responderme.
__________________
- ¿Y cuando dejaré de aprender maestro?.

- El día que te mueras pequeño saltamontes.
Responder Con Cita
  #6  
Antiguo 05-09-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Mírate este ejemplo, es fácil de aplicar:
Código:
var
miMaster:TdataSource;
begin

miMaster:=MiTabla.MasterSource;
MiTabla.MasterSource:=nil;
....Acciones a realizar
MiTable.MasterSource:=MiMaster;

end;
Un Saludo.
Responder Con Cita
  #7  
Antiguo 05-09-2003
fortran fortran is offline
Miembro
 
Registrado: may 2003
Ubicación: Asturias
Posts: 63
Poder: 21
fortran Va por buen camino
Gracias Marcos:

Ahora está solucionado, funcionó perfectamente.
__________________
- ¿Y cuando dejaré de aprender maestro?.

- El día que te mueras pequeño saltamontes.
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 08:31:34.


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