Ver Mensaje Individual
  #1  
Antiguo 19-08-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Reputación: 15
danielmj Va por buen camino
que tiene que ver?

hola,

el siguiente codigo de un procedimiento completo, repite en un componente checklistbox, el ultimo registro dos veces, el caso es que en la base de datos, hay 2 clientes cuyo primer apellido empieza por la letra 'S', hasta ahi bien, el codigo muestra esos dos clientes, pero en la misma base de datos o en la misma tabla, existen 3 clientes cuya primera letra del apellido es 'G' y entonces me repite el ultimo registro dos veces quedando algo asi...

GUTIERREZ XXXX
GFULANITO XXXX
GONZALEZ XXXX
GONZALEZ XXXX

Código Delphi [-]
procedure Tformulario1.sButton1Click(Sender: TObject);
begin
  lista2.Clear;
  adoquery1.DataSource:= dtSource;
  AdoQuery1.Close;
  AdoQuery1.SQL.Clear;
  AdoQuery1.SQL.Add ('Select APELLIDOS, NOMBRE');
  AdoQuery1.SQL.Add ('FROM tabla1');
  AdoQuery1.SQL.Add ('WHERE APELLIDOS LIKE ' +  QuotedStr(comboeliminar.text +'%'));
  AdoQuery1.Open;
  adoquery1.First;
  while not adoquery1.Eof do
  begin
      for i:= 0 to adoquery1.FieldCount -1 do
        BEGIN
          lista2.Items.Add((adoQuery1.FieldByName('APELLIDOS').AsString)+
          ' '+(AdoQuery1.FieldByName('NOMBRE').AsString));
          adoquery1.Next;
        END;
  end;
end;

¿Por que si hay 3 registros cuya primera letra del apellido sea la misma, se repite el ultimo hasta devolver 4 registros cuando en realidad deberia devolver 3?

saludos y gracias.

Última edición por danielmj fecha: 19-08-2011 a las 11:07:42.
Responder Con Cita