Ver Mensaje Individual
  #9  
Antiguo 08-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Reputación: 19
metroyd Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
metroyd,
Primeramente debe establecer hasta que punto pretendes que sea flexible el armado de las consultas.

La manera más sencilla de conseguir lo que deseas hacer es tener una serie de variables en donde registres las opciones que elija el usuario. El SQL se compondrá entonces de la concatenación de dichas opciones.

Por ejemplo podrías tener algo así:

Código Delphi [-]var StrTabla1, StrTabla2, StrOpeador, StrCampo1, StrCampo2: string;


Y por ejemplo suponer que en un OnChage de un Combo para seleccionar una condición hacer algo como esto:
Código Delphi [-]if Combo.ItemIndex = 0
then StrOperador := 'OR' then StrOperador := 'AND';


Y hacer por ejemplo en un OnClick de un botón algo como esto:

StrSQL := 'select from ' + StrTabla1 + StrCampo1 + ' where ' + StrCampo1 + ' ' + StrOperador + ' ' + StrCampo2;

Para "confirmar" la consulta.

Y para ir finalizando hacer algo como:
Código Delphi [-]Query.sSql := StrSQL;


Para asociar la consulta generada.

¿Me explico?
Como te he dicho antes... necesitas definir que tan flexible serán tus consultas. Dependiendo de ello puede que se logren hacer más o menos fácil estructurar los anidamientos y las series de IFs...

Hay muchas maneras de conseguir lo que buscas.

Creo que lo que te dicho te puede servir de orientación. Como podrás comprender el problema no es de interfaz sino de lógica, necesitarás sentarte un rato para saber armar las condiciones. Ten presente que es posible que algunas condiciones que elija el usuario pueden no ser compatibles, por ello cuando armes el SQL deberás preveer algunas condiciones.

Saludos,
Si gracias, por eso. Y la razon por las que quiero que sean asi, es porque el usuario, antes de tener el sistema que le voy a proponer, tenia su base de datos en Excel, y estaba configurado de esta manera. En la parte de la fila de los encabezados (titulos de columnas) estaba el titulo y una flechita, en donde podias desplegar todos los datos, y asi, al seleccionar uno, se iban generando las busquedas automaticamente. Es por eso que yo lo quiero manejar asi.
Responder Con Cita