Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Usa las etiquetas vb por favor.

Código Delphi [-]
var code:string;
begin 
With dm.ADOQuery1 do begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT * FROM CENTROSEDUC');

  If COMBOBOX1.Text <> 'Todos los Distritos' then 
  begin
     code := copy(combobox1.text, 1,2) + copy(combobox1.text, 6,2);
    sql.Add(' where Distrito ='+Quotedstr(code));

  end;
  Open;
end;
end;
vaya, tengo que irme.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 27-04-2008
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Consultas y/o filtrados multiples

Gracias Lepe

El codigo que me presenta esta bien, el mio es largo y funciona tambien, el problema no es ese, sino que como hago la segunda parte, o sea donde comienzan los checkbox, ya que cuando uso ese elemento para filtrar otros campos despues de haber consultado un distrito ( fijate que explico al termino, es que tengo varias combinaciones) Distrito por sector y por grado y por zona y por nivel. Con la combinacion de si es publico o privado de si es zona rural o urbana, de si es nivel incial basico o nivel medio o nivel basico solo, si la tanda es matutina, vespertina o nocturna.

Pues esa es la combinacion de elementos despues de filtrar por distrito en el comobobox.

Le he dado mucha vuelta de mi poble biblioteca no encuentro ningun ejemplo que se pueda adaptar.

Sigo en espera.
Responder Con Cita
  #3  
Antiguo 27-04-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Como has visto tuve que irme repentinamente, así que solo mostré un esbozo de lo que tenía en mente.

En el mensaje nº 6 de este hilo tienes algo que igual te sirve, o por lo menos te ayuda un poco.

Se trata de un TStringlist mejorado para crear sqls al vuelo, así te olvidas un poco de los espacios en blanco, de si debe llevar el where o no, etc. "Te permite concentrarte un poco más en tu programa olvidándote de la sintaxis del SQL".

Como verás, no es nada del otro mundo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 27-04-2008
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Consultas y/o filtrados multiples

Observa mi pantalla para que te de una idea.
Responder Con Cita
  #5  
Antiguo 27-04-2008
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Consultas y/o filtrados multiples

Hola

Mamu o Lepe

Esta es parta de mi form para que tenga una idea

Última edición por aanil fecha: 08-02-2010 a las 03:56:30.
Responder Con Cita
  #6  
Antiguo 27-04-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 28
Delphius Va camino a la fama
Hola aanil no soy Lepe pero he visto tus dudas y creo que estás enfocando mal el problema.
Por empezar no sería adecuado el uso del TCheckBox, si mo más bien el del TRadioGroup. Con esto puedes garantizar de que elija una u otra opción o ninguna.

El truco consiste en armar el SQL a partes. Ante la pulsación de un Cick sobre el TRadio se arma diversas cadenas parciales que luego serán añadidas a la parte where de la consulta.
Por ejemplo:

Código Delphi [-]
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
   case RadioGroup1.ItemIndex of
   0: where_opcion1 := 'AND ALGO1';
   1: where_opcion1 := 'AND ALGO2';
   end;
end;

where_opcion1 es una variable del tipo string que por defecto asumirá el valor vacio.
Este proceso puede extenderse a todas la combinaciones posibles.

Como puedes observar en ningún momento estoy asignando la SQL, la estoy armando a partes.
Ahora es necesario contar con algún medio para confirmar las opciones. De este modo se puede asumir que es aquí cuando armamos la SQL y la podemos asociar al Query. Por ejemplo ante la pulsación de un TButtom:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var sql: string;
begin
  sql := string_select + where_opcion1 + where_opcion2;
  Query1.Sql.Text := sql;
  Query1.Open;
end;

En el ejemplo, string_select es un string que almacena la parte select. Algo como el "select ... from ....." y asumí que hay dos opciones para agregar a la consulta.

Volviendo atrás, he dicho que por defecto las cadenas where_xxxx están seteadas a vacio. De este modo garantizas que si no se ha optado por alguna selección el sql quede formado únicamente por la parte string_select.

Creo que esto puede serte de ayuda para comprender mejor el tema.
Igualmente recomiendo que mejores el código ya que existe un denominador común en tu código y se repite...

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 28-04-2008
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Hola Delphius

Voy a comenzar a probar.

Luego te comento
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Contar registros filtrados con TDbf userlazarus Conexión con bases de datos 5 28-10-2015 10:02:21
Imprimir datos filtrados de un cxgrid DANY OOP 7 19-06-2014 17:16:01
Consultas Múltiples theloren07 Conexión con bases de datos 11 12-07-2007 15:24:32
como mostrar consultas multiples en un dbgrid?? yo_coco_py SQL 6 27-01-2007 13:00:31
Conocer el tamaño de los datos filtrados en delphi royrogers84 Firebird e Interbase 1 18-11-2006 22:14:26


La franja horaria es GMT +2. Ahora son las 04:01:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi