FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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!!!. |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
¿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..? |
#4
|
||||
|
||||
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. |
#5
|
|||
|
|||
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!!!. |
#6
|
|||
|
|||
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...
|
#7
|
|||
|
|||
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! |
|
|
|