Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Duda con busquedas (https://www.clubdelphi.com/foros/showthread.php?t=21494)

CarmaZone 19-05-2005 00:46:01

Duda con busquedas
 
Hola a tod@s, soy yo de nuevo jeje. Ahora el asunto es éste:

Tengo un maestro/detalle (proveedores/articulos) y llamo a mi ventana buscar que contiene 4 edit para buscar por: CIF, empresa, articulo, precio/articulos. Bueno lo importante es esto: La consulta SQL se hacerla pero el problemas esque el usuario puede rellenar 1,2 o todos los campos y nose como controlar la sentencia.

He pensado:

Cada edit es un parametro y luego voy construyendo el where sumando los parametros de los edit que no esten vacios pero nose muy bien por donde guiarme.

Gracias De Antemano Y Salu2!!! :cool:

roman 19-05-2005 03:05:03

Prueba esto:

Código Delphi [-]
var
  Criteria: TStringList;
  Where: String;

begin
  Criteria := TStringList.Create;
  Criteria.Delimiter := '&';
  Criteria.QuoteChar := ' ';

  Criteria.Values['cif'] := QuotedStr(Edit1.Text);
  Criteria.Values['empresa'] := QuotedStr(Edit2.Text);
  Criteria.Values['articulo'] := QuotedStr(Edit3.Text);
  Criteria.Values['precio'] := QuotedStr(Edit4.Text);

  Where := StringReplace(Criteria.DelimitedText, '&', ' and ', [rfReplaceAll]);

  Criteria.Free;
end;

Si la cadena Where está vacía es que no se llenó ningún campo. En caso contrario ya nada más agregas la cadena

'WHERE ' + Where

al resto de tu consulta.

Nota Fallará si el caracter & se encuentra en alguno de los campos.

// Saludos

hermes_32 19-05-2005 09:41:11

Hola CarmaZone,

Tambien puedes hacer:

SELECT ....... FROM .....
WHERE 1=1
....

Despues ya te queda agregar el resto.

Un saludo.


La franja horaria es GMT +2. Ahora son las 07:02:25.

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