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:
Código SQL
[-]
SELECT C.NCONTRATO, C.FECHA, Ct.RAZON_SOCIAL, Cm.MEDIDA,
Cm.COLORES, Cm.PREC_VENTA, Cm.STATUS_DESIGNE,Cm.GIRO_A_COLOCAR,
Ct.MUNICIPIO, C.Vendedor, C.Abonado, C.Tipo
FROM Contratos C
INNER JOIN Clientes Ct ON (Contratos.NUM_CLI = Clientes.NUM_CLI)
INNER JOIN Cont_mov CmON (Contratos.NCONTRATO = Cont_mov.NCONTRATO)
ORDER BY Cm.GIRO_A_COLOCAR,Ct.RAZON_SOCIAL
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;
Espero haberme explicado, y gracias de antemano si alguien tiene otra idea o tal vez me marca algo en lo que estoy fallando