Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2012
Avatar de darkbits
darkbits darkbits is offline
Miembro
 
Registrado: may 2006
Posts: 280
Poder: 19
darkbits Va por buen camino
no me funciona "Filter" en una consulta SQL

un saludo al club toy trabajando en ID D6 + Interbase 6

ejecuto mi sql y los datos me muestra en un DBGrid1 hasta ahi todo bien

Código SQL [-]
 _DM.consulta3.SQL.Text:='SELECT * FROM ventas WHERE tipo_ventas=''CONTADO'' ORDER BY id_ventas ASC';
 _DM.consulta3.open;

luego tengo un Tedit llamado buscar.text para typear de acuerdo a lo que quiero buscar y que filtre y esto es lo que no me funciona.
NO me filtra nada y tampoco me da error.

hice la prueba en vez de utilizar _DM.consulta3 utilizo un _DM.table3 y si filtra perfectamente la tabla pero el SQL no me filtra
utilizo _DM.consulta3 porque tiene condicion WHERE tipo_ventas=''CONTADO''


Código Delphi [-]
var
   Filtroventas: String;
begin
   If (buscar.Text <> '') then
   begin
      _DM.consulta3.Filtered := False;
       Filtroventas := 'cliente_ventas Like ''%'+ buscar.Text + '%'''+' or '+'operador_ventas like ''%'+ buscar.Text + '%''' ;
      _DM.consulta3.Filter := Filtroventas;
      _DM.consulta3.Filtered := True
   end
   else _DM.consulta3.Filtered := False;


eh utilizado _DM.consulta3 con LIKE funciona pero no respeta la condicion WHERE tipo_ventas Like ''Contado''
Código SQL [-]
  _DM.consulta3.Close;
  _DM.consulta3.SQL.Text:= 'SELECT * FROM ventas WHERE tipo_ventas Like ''Contado'' and cliente_ventas Like ''%'+ buscar.Text + '%'''+' or '+'operador_ventas like ''%'+ buscar.Text + '%''';
  _DM.consulta3.Open;

por eso veo la mejor opcion es hacer funcionar la SQL con FILTER
y es ahi donde pido ayuda al foro para que me funcione

gracias
__________________
Gracias por su coloración club delphi

darkbits ;)
Responder Con Cita
  #2  
Antiguo 02-07-2012
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 darkbits.

Según creo entender, la condición de la consulta que buscas es: tipo_ventas = 'CONTADO' Y ( clientes_venta LIKE ... O operador_ventas LIKE...).

Si es así, podes hacer:
Código Delphi [-]
  with consulta3 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM VENTAS');
    SQL.Add(' WHERE TIPO_VENTAS = :P1');
    SQL.Add(' AND (CLIENTE_VENTAS LIKE :P2 OR OPERADOR_VENTAS LIKE :P2)');
    ParamByName('P1').AsString:= 'CONTADO';
    ParamByName('P2').AsString:= buscar.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 03-07-2012
Avatar de darkbits
darkbits darkbits is offline
Miembro
 
Registrado: may 2006
Posts: 280
Poder: 19
darkbits Va por buen camino
Si funciona perfectamente
unico detalle solo me deja escribir 16 letras

y cuando utilizo FILTER me deja escribir mas

mi consulta es se puede hacer FILTER a un SQL como ?

gracias
__________________
Gracias por su coloración club delphi

darkbits ;)
Responder Con Cita
  #4  
Antiguo 03-07-2012
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
Cita:
Empezado por darkbits Ver Mensaje
Si funciona perfectamente unico detalle solo me deja escribir 16 letras
Hola darkbits.

Si sólo te permite escribir 16 caracteres, tenes que incrementar el valor de la propiedad MaxLength del TEdit o TDBEdit llamado "buscar" sin exceder el tamaño asignado en la creación del campo .

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
El programa se queda "colgado" mientras copia y luego "despierta" NeWsP OOP 5 10-03-2010 22:05:40
No funciona "AGREGAR O QUITAR PROGRAMAS" soler Varios 3 13-01-2008 23:28:12
"(nombre + ' ' + apellidos)" no funciona molina669 SQL 9 07-12-2007 16:36:08
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
Código "erroneo" pero que funciona ixMike Varios 8 11-04-2007 18:57:08


La franja horaria es GMT +2. Ahora son las 23:08:39.


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