Ver la Versión Completa : Filtrarrr
einarcito
10-10-2008, 04:24:51
hola gente una vez mas aqui haciendo mis preguntas... no puedo filtrar los datos de la DB, alguien puede decir q esta mal??
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
If (BaseDatos = 'Access') then begin
ReplaceAllOcurrences('%', '*')
end;
Si no es access, visualiza la sentencia antes de lanzarla:
SQL.text:='SELECT * FROM clientes WHERE dni LIKE '+ quotedstr('%'+edit11.Text+'%');
MessageDlg('SQL:' + SQL.Text, mtInformation, [mbOK], 0);
Y ponla aquí.
se supone que DNI es campo de texto...
einarcito
10-10-2008, 15:05:43
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
¿Has comprobado que el DNI que introduces existe en la tabla?
if (BaseDatos = 'Access') then begin
visualiza la sentencia antes de lanzarla y ponla aquí.
se supone que DNI es campo de texto...
.... 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...
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
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)
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
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
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
si dni es numerico, el like no se usa
Bueno en el caso de SQL Server puedes utilizar algo como esto:
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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.