Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Filtrarrr (https://www.clubdelphi.com/foros/showthread.php?t=60688)

einarcito 10-10-2008 04:24:51

Filtrarrr
 
hola gente una vez mas aqui haciendo mis preguntas... no puedo filtrar los datos de la DB, alguien puede decir q esta mal??
Código Delphi [-]
  
procedure TForm3.Edit11Change(Sender: TObject);
begin
with dm.abmclientes do begin
  Active := false;
  SQL.Clear;
  SQL.text:='SELECT * FROM clientes WHERE dni LIKE '+ quotedstr('%'+edit11.Text+'%');
   Active := true;
 
end;
no me filtraaa.... algun aporte????? GRAX ADIOSS

marcoszorrilla 10-10-2008 05:53:10

¿Has comprobado que el DNI que introduces existe en la tabla?

Un Saludo.

Neftali [Germán.Estévez] 10-10-2008 08:48:05

Código Delphi [-]
If (BaseDatos = 'Access') then begin
  ReplaceAllOcurrences('%', '*')
end;

Si no es access, visualiza la sentencia antes de lanzarla:

Código Delphi [-]
SQL.text:='SELECT * FROM clientes WHERE dni LIKE '+ quotedstr('%'+edit11.Text+'%');

MessageDlg('SQL:' + SQL.Text, mtInformation, [mbOK], 0);

Y ponla aquí.

coso 10-10-2008 10:06:14

se supone que DNI es campo de texto...

einarcito 10-10-2008 15:05:43

filtrar
 
gracias por la ayuda, eh tratato de filtrar por nombre o apellido tmb y no me filtra, podria decirles q se ejecuta la con consulta a medida q escribo pero no filtra.... otro aporteeeeee???? GRRAX ADIOS

Neftali [Germán.Estévez] 10-10-2008 15:24:38

Cita:

Empezado por marcoszorrilla (Mensaje 319299)
¿Has comprobado que el DNI que introduces existe en la tabla?

Cita:

Empezado por Neftali (Mensaje 319302)
if (BaseDatos = 'Access') then begin

visualiza la sentencia antes de lanzarla y ponla aquí.

Cita:

Empezado por coso (Mensaje 319312)
se supone que DNI es campo de texto...

Cita:

Empezado por einarcito (Mensaje 319361)
.... otro aporteeeeee??

Qué tal si contestas a algo de lo que te hemos pedido/preguntado.

einarcito 10-10-2008 15:28:24

DNI si existe, no uso acces estoy con mysq server 5, tendria q modifiar alguna propiede del Ttable como ser el filterOption??? en si te podria decir q se ejcuta la consulta peor no filtra...

coso 10-10-2008 15:47:34

del Ttable o del Tquery? si tienes un dbgrid asociado a un datasource asociado a una tabla y filtras una query... no veras nada...nos puedes explicar algo mejor tu problema? la sentencia que pusiste no tiene ningun error, por lo tanto, esta por otro lado.

einarcito 10-10-2008 16:28:33

gracias por sus aportes.. A ver tengo como deices tu tengo un ttable un datasourse asociado al ttable y el query al datasourse y el grid al datasourse como deices tu... y en el evento onchange de ledit escribi esa sentencia para q me filtreee el grid entonces q estoy haciendo mal???

cmm07 10-10-2008 16:31:47

no filtra porque estas utilizando el like

Código Delphi [-]
procedure TForm3.Edit11Change(Sender: TObject);
begin
with dm.abmclientes do begin
  Active := false;
  SQL.Clear;
  SQL.text:='SELECT * FROM clientes WHERE dni LIKE '+ quotedstr('%'+edit11.Text+'%');
   Active := true;
 
end

debería ser así o algo asi (este codigo lo hice sin probarlo)

Código Delphi [-]
procedure TForm3.Edit11Change(Sender: TObject);
begin
with dm.abmclientes do begin
  Active := false;
  SQL.Clear;
  SQL.text:='SELECT * FROM clientes WHERE dni ='+ quotedstr(edit11.Text);
   Active := true;
 
end

coso 10-10-2008 16:39:45

tal como dice cmm07...si dni es numerico, el like no se usa, se usa el igual...el like solo es para campos tipo texto. Entonces ¿DNI es texto o numerico?

einarcito 10-10-2008 17:01:24

gracias chicos... muy buenos aportes voy a probar, no la tenia a esa del like pensaba q era para todos tipo de datos Graxxx Adios

coso 10-10-2008 17:04:08

vamos...q dni era numerico :(...la proxima vez, tal como tambien te dice neftali, si vas contestando, mejor que mejor. Venga, saludos ;)

Neftali [Germán.Estévez] 10-10-2008 17:34:37

Cita:

Empezado por coso (Mensaje 319391)
si dni es numerico, el like no se usa

Bueno en el caso de SQL Server puedes utilizar algo como esto:

Código SQL [-]
Select * from Tabla1 where CampoNumerico like '20%'

Para campos numéricos, el servidor se encarga de hacer las correspondientes conversiones. ;););) (detallitos que tiene).

AÑADO: Acabo de releer que la BD es (parece) MySQL, por lo tanto... => "No aplicable es este caso" :o:o:o


La franja horaria es GMT +2. Ahora son las 10:16:18.

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