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 28-05-2003
Un abrazo Un abrazo is offline
Miembro
 
Registrado: may 2003
Posts: 31
Poder: 0
Un abrazo Va por buen camino
Moverse por los registros de una tabla

Tengo un formulario con los campos de una tabla y me quiero mover a través de los registros de la tabla con botones hechos por mi utilizando SQL.

Para realizar el boton de siguiente he utizado la siguiente sentencia SQL:

'select first 1 NumRegistro from Entrada
where NumRegistro>'+IntToStr(NReg)

De esta forma elige el primero de los registros mayores al actual.

Pero al hacer el boton anterior intento utilizar el last en vez del first y < en vez de mayor > para coger el último de los menores y el programa no lo acepta:

'select last 1 NumRegistro from Entrada
where NumRegistro<'+IntToStr(NReg)

Vosotros le veis algun fallo o es que no es asi????
__________________
Un Abraaaaaaaaaazo!!!.
Responder Con Cita
  #2  
Antiguo 28-05-2003
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 21
javiermorales Va por buen camino
Podrías utilizar las siguientes sentencias:

1.- Para obtener el siguiente registro:

select MIN(NumRegistro) from Entrada
where NumRegistro>IntToStr(NReg)

2.- Para obtener el anterior:

select Max(NumRegistro) from Entrada
where numRegistro<IntToStr(NReg)

No lo he probado, pero creo que funcionará.

Espero que te ayude.
Responder Con Cita
  #3  
Antiguo 28-05-2003
Bacterion Bacterion is offline
Miembro
 
Registrado: may 2003
Posts: 91
Poder: 21
Bacterion Va por buen camino
¿no te estás complicando demasiado la vida?
¿Porqué no usas una tabla o query y navegas llamando a los métodos Next, Prior, etc..?
Responder Con Cita
  #4  
Antiguo 28-05-2003
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 21
javiermorales Va por buen camino
Estoy de acuerdo con Bacterión, pero como lo ha preguntado en SQL, pues se lo he dado.

De todas maneras, hazle caso a Bacterión, si no tienes obligación de hacerlo con SQL´s.

Un abrazo.
Responder Con Cita
  #5  
Antiguo 28-05-2003
Un abrazo Un abrazo is offline
Miembro
 
Registrado: may 2003
Posts: 31
Poder: 0
Un abrazo Va por buen camino
Estoy haciendolo con SQL para no cargar 20.000 registros y cargar solo 1 con lo cual el programa en red va a ser mas rápido.

Solo era por eso.

Por cierto muy buena y idea lo del Max y el Min, no se me había ocurrido.

Gracias a todos, problema resuelto
__________________
Un Abraaaaaaaaaazo!!!.
Responder Con Cita
  #6  
Antiguo 28-05-2003
Bacterion Bacterion is offline
Miembro
 
Registrado: may 2003
Posts: 91
Poder: 21
Bacterion Va por buen camino
Las querys no se traen toda la tabla, se traen lo que el cliente de la base de datos tenga configurado que debe traer (paquetes de n kas). Si quieres controlarlo más, usa un clientdataset con packetrecord a 1...
Responder Con Cita
  #7  
Antiguo 31-05-2003
jcasassa jcasassa is offline
Miembro
 
Registrado: may 2003
Posts: 12
Poder: 0
jcasassa Va por buen camino
No mencionas en que tipo de BD estás pero recuerda que en SQL el tipo de cursor que hayas abierto el Dataset determina el comportamiento.
Si es una Query, no hay navegación, esto quiere decir, que sabe recuperar datos y actualizar datos, pero no hay marcas de posición. No sabe, quien es el proximo, o el anterio.
Para ello hace falta un cursor que SEPA navegar, pero esto quiere decir que consume recursos, posible lo es, pero es menos eficiente.
Espero que te haya ayudado.
Hasta luego!
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 06:33:43.


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