FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Uso de clausula in con parametro de valores diferentes de cadenas
Hola, estoy trabajando con Delphi 6 y Paradox en windows XP, y deseo hacer una consulta SQL sobre una tabla que contiene un listado de Giros Comerciales. La consulta real conlleva el uso de otras tablas y estaba en funcionamiento, solo que ahora el patron pide hacer "filtros" sobre un campo string y deseo hacerlo directo en la consulta. La consulta originalmente esta asi:
El asunto es que ahora desean establecer rango sobre el campo Cm.GIRO_A_COLOCAR que almacena el nombre del giro comercial (ABOGADO, LICORERIA, ETC), para que por ejemplo se muestren solo los registros que en el campo GIRO_A_COLOCAR tengan giros que vayan desde la "A" a "C", por lo que se incluiria ABOGADOS, ABARROTES-MAYOREO.....CARPINTERIAS. La seleccion de rango es en base a otra tabla donde estan guardados todos los giros comerciales existentes. Trate de solucionarlo como se sugiere en el siguiente hilo: http://www.clubdelphi.com/foros/show...hlight=CADENAS pero no me da resultado por que las cadenas que se guardan en el StringList a veces vienen con comillas("") supongo yo, aunque la verdad no se porque salen con comillas pues los registros no estan almacenados con comillas. El codigo como trato de hacerlo en Delphi es de la siguiente manera: Código:
procedure TForm1.Button1Click(Sender: TObject); var GirosAceptados:TstringList; LetraFinal:String; begin QueryTodosGiros.Locate('Giro',Edit1.Text,[loCaseInsensitive]); GirosAceptados:=TStringList.Create; LetraFinal:=copy(QueryTodosGirosGiro.Value,0,1); while LetraFinal<>Edit2.Text do begin GirosAceptados.Add(QueryTodosGirosGiro.Value); QueryTodosGiros.Next; LetraFinal:=copy(QueryTodosGirosGiro.Value,0,1); end;//while QueryGirosFiltrados.Close; QueryGirosFiltrados.ParamByName('GirosAceptados').Value:=GirosAceptados.CommaText; QueryGirosFiltrados.Open; end;
__________________
Salu2 |
#2
|
||||
|
||||
No sé si el SQL de Paradox te permite la cláusula BETWEEN pero quizás es lo que necesitas.
y los parámetros TEXTO_INICIAL podría ser 'C%' por ejemplo. ¿Algo así te serviría?
__________________
Si no lo sabes, necesitas leerlo |
#3
|
|||
|
|||
Muchas gracias por respuesta primeramente. Y nunca se me habia ocurrido ese metodo. Casi logra lo que ocupo. Con tu recomendacion hice una prueba con la siguiente consulta:
el detalle es que no me incluyo los de la letra final. En la consulta anterior por ejemplo no me incluyes los registros que inician con "F" no los incluye. Asi que por decirlo asi, debo de poner la letra siguiente a la que realmente deseo que sea el limite de la consulta. ¿Hay manera de que incluya tambien el "final" del rango?
__________________
Salu2 |
#4
|
||||
|
||||
podrias cambiarlo mas o menos asi
Select campos from tabla where campo >= 'A' and camop <= 'F' order by campo
__________________
Dulce Regalo que Satanas manda para mi..... Última edición por oscarac fecha: 13-09-2011 a las 15:25:46. |
#5
|
|||
|
|||
Si estoy seguro, de hecho probe desde la "D" hacia adelante y siempre saca los registros hasta la letra anterior a la que digo
__________________
Salu2 |
#6
|
||||
|
||||
sorry edite la respuesta ahi te deje otra
__________________
Dulce Regalo que Satanas manda para mi..... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como pasar un parametro a una consulta que usa la clausula IN | coco0001 | Conexión con bases de datos | 4 | 26-04-2012 17:45:02 |
2 ventanas diferentes, 2 monitores diferentes | Milperrimo | Varios | 12 | 02-10-2008 04:12:32 |
Comparar 2 cadenas con diferentes formatos. | NSL94 | SQL | 6 | 21-09-2007 20:16:36 |
valores diferentes en array | anubis | Varios | 6 | 17-04-2007 09:47:39 |
Diferentes alineaciones para diferentes parrafos | ciscu | Servers | 0 | 15-03-2004 10:36:12 |
|