Ver Mensaje Individual
  #1  
Antiguo 07-10-2016
cristian22 cristian22 is offline
Miembro
NULL
 
Registrado: jun 2014
Posts: 18
Reputación: 0
cristian22 Va por buen camino
Ayuda busqueda de case usando radiogroup

Hola buenas tardes. Realize una aplicacion con mysql -5 y delphi 2010, con componentes query de zeos". Tengo un formulario que utilizo un listado en el cual busco los productos utilizando un tedit llamado "eProductos" y estos datos van visualizando se en el dbgrid.
esta busqueda la realizo de la siguiente forma en un query tengo escrita la siguiente consulta

Código SQL [-]
 select * from productos where nombrepr LIKE :razon

luego en el boton buscar tengo escrito el siguiente codigo

Código Delphi [-]
 qProductos.ParamByName('razon').AsString := '%' +eProductos.text+ '%'

hasta aqui me funciona perfecto la busqueda ahora lo que necesito es filtrar esa busqueda dependiendo si el producto esta activo o no (para ello uso el campo estado de mi tabla producto)
creo un radiogroup con 3 opciones:

0:Activos
1:Bajas

para este punto hice lo siguiente borre la consulta del query e intente hacer lo siguiente en el evento onclick del boton buscar use el siguiente codigo
Código Delphi [-]
begin
qProductos.close;
qProductos.SQL.clear;
qProductos.SQL.Text:='Select * from producto';
qProductos.Open;
case radiog.ItemIndex of
0: qProductos.SQL.ADD('where estado=1')
1: qProductos.SQL.ADD('where estado=0')

al intentar esto me sale el siguiente error
project drugstore.exe raised exception class EDatabaseError with message 'qProductos:Cannot perform this operation on a closed dataset

tambien lo que habia intentado antes era escribir la siguiente consulta pero me daba error de escritura
Código Delphi [-]
0: begin
qProductos.SQL.ADD('where estado=1');
qProductos.SQL.ADD('where nombreproducto LIKE='+quotedstr(eProductos.text));

si podrian guiarme en este problema muchas gracias desde ya
Responder Con Cita