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 02-04-2005
ELINK ELINK is offline
Miembro
 
Registrado: mar 2005
Posts: 55
Poder: 20
ELINK Va por buen camino
Limit En Firebird,como?

ESTA ES MI SENTENCIA:
select NUM from REGTRANF ORDER BY NUM DESC LIMIT 200
Y ME DA ERROR,ALGUNA SUGERENCIA???
Responder Con Cita
  #2  
Antiguo 02-04-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
en realidad varias:

Lee la guia de estilo, donde verás que no es bien visto por aqui ESCRIBIR EN MAYÚSCULAS....

También lee el hilo de la calidad de las preguntas y por último, replanteá la cuestión siguiendo los consejos que encontres por alli.

Saludos.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 02-04-2005
ELINK ELINK is offline
Miembro
 
Registrado: mar 2005
Posts: 55
Poder: 20
ELINK Va por buen camino
Consejo Para Todos Menos Para Mi

PRIMERO:
"Lee la guia de estilo, donde verás que no es bien visto por aqui ESCRIBIR EN MAYÚSCULAS...."
-si bien tienes razón NO ESPARA QUE TE LO TOMES TAN A PECHO

SEGUNDO:
"También lee el hilo de la calidad de las preguntas y por último, replanteá la cuestión siguiendo los consejos que encontres por alli."

A buen entendedor pocas palabras es una sentencia simple en donde el error aparece al agregarle a este "limit 200".

Y TERCERO:
TU intervencion lejos de ayudarme a hecho que reacciones de esta manera y me lleve una mala impresion de los moderadores (o de por lo menos UNO) al responder a mi pedido de ayuda de una manera sarcastica como tu lo has hecho.

Gracias.(Por nada)(En Esta Ocasion )
Responder Con Cita
  #4  
Antiguo 02-04-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, no hace falta enfadarse, a veces ocurren malos entendidos porque en un medio escrito como este, el no poder ver las caras y gestos del que te habla (escribe), puede llevarte a confusión, pero seguro que ha sido una pequeña "reprimenda" sin mala intención.

En cuanto a tu pregunta, creo recordar que la sentencia debería ser algo así:

Código:
  select first 200 NUM from REGTRANF ORDER BY NUM DESC
Te hablo de memoria, mejor mira la documentación para asegurarte.
Responder Con Cita
  #5  
Antiguo 02-04-2005
ELINK ELINK is offline
Miembro
 
Registrado: mar 2005
Posts: 55
Poder: 20
ELINK Va por buen camino
Gracias por tu ayuda Casimiro Notevi, pero otro pregunta:esta sentencia funciona bien para los 200 "primeros"
select first 200 NUM from REGTRANF ORDER BY NUM DESC
pero para los 200 "ultimos" deveria de ser asi verdad?
select last 200 NUM from REGTRANF ORDER BY NUM DESC
el problema es que va error
Responder Con Cita
  #6  
Antiguo 02-04-2005
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
Si los ordenas por orden descendente los 10 primeros son los 10 últimos. De lo contrario me temo que vas a tener que hacer algo tan enrevesado como esto:
Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 var
 nReg:Integer;
 begin
 Ibquery1.Close;
 Ibquery1.Sql.Clear;
 IbQuery1.SQL.Add('Select Count(*) from Clientes');
 IbQuery1.Open;
 nReg:=IbQuery1.Fields[0].AsInteger;
 
 Ibquery1.Close;
 Ibquery1.Sql.Clear;
 IbQuery1.SQL.Add('Select first 10 Skip('+IntToStr(nReg)+'- 10)');
 IbQuery1.SQL.Add('NOMBRE, TITULAR, POBLACION from Clientes');
 ShowMessage(ibquery1.sql.Text);
 IbQuery1.Open;
 
 end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 02-04-2005
ELINK ELINK is offline
Miembro
 
Registrado: mar 2005
Posts: 55
Poder: 20
ELINK Va por buen camino
Gracias

Tenias razon con lo primero y menos mal que no tuve q intentar lo segundo
Gracias por tu Ayuda
Responder Con Cita
  #8  
Antiguo 09-12-2005
micayael micayael is offline
Miembro
 
Registrado: sep 2005
Posts: 68
Poder: 19
micayael Va por buen camino
Hola.
El LIMIT tengo entendido que permite hacer LIMIT desde,hasta hay forma de hacer eso de la manera que están hablando
Responder Con Cita
  #9  
Antiguo 09-12-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por micayael
Hola.
El LIMIT tengo entendido que permite hacer LIMIT desde,hasta hay forma de hacer eso de la manera que están hablando
¿estas tratando de decir que no puede hacerse?
Efectivamente, con SQL puro no puede hacerse, pero ya Marcos ha dado una solución basada en Delphi + SQL que, a pesar de ser "enrevesado", si que funcionaría.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 09-12-2005
micayael micayael is offline
Miembro
 
Registrado: sep 2005
Posts: 68
Poder: 19
micayael Va por buen camino
No dije que no se puede. _Solo que con el LIMIT de mySQL se puede hacer eso con SQL puro y queria saber si se puede en firebird.

No conozco Delfi yo. Si por ahi puedes explicar el codigo te lo agradeceria.
Un abrazo.
Responder Con Cita
  #11  
Antiguo 10-12-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Pues si te fijas en el SQL, se explica solito...

En mis palabras sería:

Obtener el número total de registros almacenados en la tabla de clientes
Obtener 20 registros saltandose (el total - 20) de la tabla de clientes. Resultado: Los últimos 20 clientes.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #12  
Antiguo 12-12-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Haber si esto te sirve
Código SQL [-]
/*Los 2 primeros*/
Select First 2 Skip 0 "Codigo" From "Inventario" Order By "Codigo"
/*Los dos Siguientes*/
Select First 2 Skip 2 "Codigo" From "Inventario" Order By "Codigo"
/*Los dos Siguientes*/
Select First 2 Skip 4 "Codigo" From "Inventario" Order By "Codigo"
/*Los dos Siguientes*/
Select First 2 Skip 6 "Codigo" From "Inventario" Order By "Codigo"
First Te Indica Cuantos quieres devolver y Skip desde donde quieres comenzar
y para tu caso smallint hay 50(= N) registros
Código SQL [-]
Select First 20 Skip ("N" - 20) "Codigo" From "Inventario" Order By "Codigo"
Y otra manera seria hacer la busqueda ordenando en orden inverso
y luego ordenar de lamanera que quieres

El problema es de este ultimo ejemplo es que solo funciona en firebir 2 ya que es la version que soporta tablas derivadas
Código SQL [-]
Select "Codigo" From (
Select First 20 Skip 0 "Codigo" From "Inventario" Order By "Codigo" Desc) Order By "Codigo" Asc
Aunque creo que puedes encontrar otra solucion
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #13  
Antiguo 12-12-2005
micayael micayael is offline
Miembro
 
Registrado: sep 2005
Posts: 68
Poder: 19
micayael Va por buen camino
perfecto rastafarey eso era lo que necesitaba. 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


La franja horaria es GMT +2. Ahora son las 23:13:37.


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