Foros Club Delphi

Foros Club Delphi (http://www.clubdelphi.com/foros/index.php)
-   SQL (http://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta con "or" en Delphi (http://www.clubdelphi.com/foros/showthread.php?t=92596)

The Cid James 07-12-2017 01:17:13

Consulta con "or" en Delphi
 
No se si esto va en esta sección, de no ser asi pido disculpas y que muevan el psot.
Tengo una duda respecto a ejecutar una consulta en Delphi teniendo OR en ella
Esta es la consulta que hice, para buscar en la tabla clientes por nombre o apellido

Código SQL [-]
Cliente.direccion,
Cliente.cuit_cliente,
Cliente.notas
FROM
    Cliente
WHERE
  Cliente.estado = 1 AND
  Cliente.apellido like :ape
OR
 Cliente.estado = 1 AND
 Cliente.nombre like :nom

Ahora lo que no se es como reglejar esto en delphi, esta es la manera en que he estado ejecutando las consultas, pero siempre con un solo parametro

Código Delphi [-]
procedure Tfcliente.BCbuscarClick(Sender: TObject);
begin
  if ECcliente.text = ''
    then
      exit
    else
      begin
      fmodulo.qCliente.ParamByName('ape').AsString := Eccliente.Text+'%';
      fmodulo.qCliente.Refresh;
      end;
end;

ecfisa 07-12-2017 01:43:26

Hola.

Cuando en la consulta SQL sólo hay involucrada una tabla, de modo que no debería haber concurrencia con los nombres de columnas, no es necesario calificarlos:
Código SQL [-]
SELECT  DIRECCION, CUIT_CLIENTE, NOTAS
FROM CLIENTE CL
WHERE ESTADO = 1 AND (APELLIDO LIKE :APE OR NOMBRE LIKE :NOM)

Y desde Delphi:
Código Delphi [-]
procedure Tfcliente.BCbuscarClick(Sender: TObject);
begin
  if ECcliente.text = '' then exit
  else
  begin
    fmodulo.qCliente.SQL.Clear;
    fmodulo.qCliente.SQL.Add('SELECT DIRECCION, CUIT_CLIENTE, NOTAS');
    fmodulo.qCliente.SQL.Add('FROM CLIENTE WHERE ESTADO = 1 AND');
    fmodulo.qCliente.SQL.Add('(APELLIDO LIKE :APE OR NOMBRE LIKE :NOM)');
    fmodulo.qCliente.ParamByName('APE').AsString := tu_EditApellido.Text + '%';
    fmodulo.qCliente.ParamByName('NOM').AsString := tu_EditNombre.Text + '%';
    fmodulo.qCliente.Open;
  end;
end;

Saludos :)

The Cid James 07-12-2017 06:23:26

Como siempre muchas gracias!


La franja horaria es GMT +2. Ahora son las 01:41:35.

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