Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-08-2013
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Ordenar Campos String con valores

Me podrian orientar por favor .. tengo una consulta con Query, en donde un campo de la tabla es Alfanumerico con los siguiente datos.

100 TONS A RADIO DE 12.5 MTS
030 TONS A RADIO DE 12.5 MTS
200 TONS A RADIO DE 12.5 MTS
040 TONS A RADIO DE 12.5 MTS
037 TONS A RADIO DE 12.5 MTS


Necesito ordenar por rango estos datos, por ejemplo buscar el rango de toneladas que esten entre 030 a 200, los datos de rango los tengo dentro de combobox con la siguiente consulta:
Combobox1=rango del número 0 AL 999 al igual que el otro combobox2

Código Delphi [-]
       with Query1 do
       begin
         Close;
         SQL.Clear;
         SQL.Add('SELECT * FROM Reg_ctrl.db WHERE GRUA_PR BETWEEN ' + Combobox1.Text + ' AND ' + Combobox2.Text);
         Open;
       end;

Pero no me lo busca .. faltará algo?

Última edición por ecfisa fecha: 30-08-2013 a las 02:49:16. Razón: corregir estilo de letra
Responder Con Cita
  #2  
Antiguo 30-08-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola koalasoft.

Primero que nada mi consejo es que pongas la cantidad de toneladas en un campo numérico aparte. Pero apegandome a tu consulta y a los datos de muestra, podes hacer:

Código Delphi [-]
  with Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM REG_CTRL.DB');
    SQL.Add('WHERE CAST(SUBSTRING(GRUA_PR FROM 1 FOR 3) AS INTEGER) BETWEEN :DESDE AND :HASTA');
    ParamByName('DESDE').AsInteger := StrToInt(Combobox1.Text);
    ParamByName('HASTA').AsInteger := StrToInt(Combobox2.Text);
    Open;
  end;


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 30-08-2013
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
mmm .. los valores que tengo en los combobox no son extraídos o no pertenecen a la BD, ya que allí solo tengo manualmente los rangos que necesito poner. en los dos con un FOR cargo los valores del 0 al 999 ...

Lo intente con esto pero igual no me dio resultado ..

SQL.Add('SELECT * FROM REG_CTRL.DB');
SQL.Add('WHERE CAST(SUBSTRING(GRUA_PR FROM 1 FOR 3) AS INTEGER) BETWEEN "' + Combobox1.Text + '" AND "' + Combobox2.Text + '"');

Última edición por koalasoft fecha: 30-08-2013 a las 16:12:06.
Responder Con Cita
  #4  
Antiguo 30-08-2013
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Lo que intento es que de los datos que mencioné:

100 TONS A RADIO DE 12.5 MTS
030 TONS A RADIO DE 12.5 MTS
200 TONS A RADIO DE 12.5 MTS
040 TONS A RADIO DE 12.5 MTS
037 TONS A RADIO DE 12.5 MTS

Queden ordenados asi:

030 TONS A RADIO DE 12.5 MTS
037 TONS A RADIO DE 12.5 MTS
040 TONS A RADIO DE 12.5 MTS
100 TONS A RADIO DE 12.5 MTS
200 TONS A RADIO DE 12.5 MTS

Cuando en los combobox yo le den un rango de : 1 al 999.
Donde esos datos estan dentro de una campo tipo String.
Responder Con Cita
  #5  
Antiguo 30-08-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola koalasoft.

En realidad no sé como estás haciendo tu código, por lo que te adjunto un demo totalmente operativo con el código que te puse en el mensaje anterior.

El demo incluye una tabla, REG_CTRL.DB, que posee solamente el campo interesado con los valores que mencionas en tu último mensaje.

Crea una carpeta con el nombre que desees y descomprimí el adjunto alli, revisalo y probalo con tranquilidad.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip koalasoft.zip (4,5 KB, 4 visitas)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 30-08-2013
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Ok muchas gracias !! ..
Responder Con Cita
  #7  
Antiguo 30-08-2013
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Efectivamente era como usted lo plantea .. quedo de la siguiente forma ..

Para los rangos ..

Código Delphi [-]
   // rango de Cap. de Grua
Combobox4.Clear;
   For ri := 000 to 999 do
   Begin
   Combobox4.Items.Add(FormatFloat('000',ri));
   End;

Combobox5.Clear;
   For rf := 000 to 999 do
   Begin
   Combobox5.Items.Add(FormatFloat('000',rf));
   End;

Y la busqueda sería asi ..

Código Delphi [-]
  with Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM REG_CTRL.DB');
    SQL.Add('WHERE CAST(SUBSTRING(GRUA_PR FROM 1 FOR 3) AS INTEGER) BETWEEN : DESDE AND :HASTA');
    SQL.Add('ORDER BY GRUA_PR');
    ParamByName('DESDE').AsInteger := StrToInt(Combobox4.Text);
    ParamByName('HASTA').AsInteger := StrToInt(Combobox5.Text);
    Open;
  end;

No estaba muy relacionado con parámetros SQL con delphi pero veo que creaste dos parámetros que ayudaron a buscar mas fácil los rangos que son DESDE HASTA .. Hoy aprendi algo nuevo jejej !!

Muchas gracias .. !! tema resuelto ..
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ordenar String Neeruu Varios 2 18-09-2008 18:58:50
comparar un string con un rango de valores locorez Varios 2 09-01-2006 15:54:43
ordenar por campos galmacland MS SQL Server 3 07-03-2005 18:21:09
Ordenar por 2 campos Franklim SQL 3 09-06-2004 21:32:26
ordenar campos string maruenda Conexión con bases de datos 3 29-01-2004 23:10:20


La franja horaria es GMT +2. Ahora son las 17:48:16.


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