Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-08-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
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
  #2  
Antiguo 19-08-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
buenas,

solucionado, cambie el -1 del FOR por -2 y ya va bien.

saludos.
Responder Con Cita
  #3  
Antiguo 19-08-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que lo de adoquery1.FieldCount es incorrecto.
FieldCount, se refiere a la cantidad de campos que tiene la tabla y no la cantidad de registros.
En realidad deberías utilizar adoquery1.RecordCount

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.RecordCount -1 do
        BEGIN
          lista2.Items.Add((adoQuery1.FieldByName('APELLIDOS').AsString)+
          ' '+(AdoQuery1.FieldByName('NOMBRE').AsString));
          adoquery1.Next;
        END;
  end;
end;
Responder Con Cita
  #4  
Antiguo 19-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola danielmj.

Me alegra mucho que hayas solucionado tu problema y agradezco que nos hacercaras la solución.

Pero te hago una observación: que tiene que ver? (el título), con el problema que tenias ?

Te ruego que leas la guía de estilo, punto 8

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 19-08-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
hola ecfisa que pasa amigo?

perdona si el titulo no fue el mas indicado, simplemente me referia a "¿que tiene que ver el numero de registros que haya para que el codigo haga una u otra cosa?" por eso puse el titulo.
Lo siento.

Y sobre lo que dices duilioisola, ahora lo voy a probar a ver si corre bien, gracias.
...

Acabo de probar ese cambio de linea y funciona perfectamente, mi solucion tambien, pero por estetica en el codigo me quedo con tu solucion, me gusta mas que poner ".FieldCount -2"

Saludos.

saludos y gracias por todo.

Última edición por danielmj fecha: 19-08-2011 a las 15:43:33.
Responder Con Cita
  #6  
Antiguo 19-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
perdona si el titulo no fue el mas indicado
No tenés por que pedir disculpas, llevas poco tiempo en los foros y es totalmente razonable que desconozcas alguna norma

Te explico, la razón de que pidamos titulos significativos, es por que se hace más sencillo para todos localizar las soluciones o responder a las consultas, que si tienen títulos sin relación con el problema.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 19-08-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
no es por estetica, sino porque es lo correcto... usar recordcount en lugar de fieldcount, uno cuenta los registros y el otro cuenta los campos...
otra cosita... mejor publica otra respuesta en lugar de editar la respuesta anterior.... eso puede provocar que nos perdamos en la evolucion del hilo..

saludos...
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por oscarac fecha: 19-08-2011 a las 17:20:17.
Responder Con Cita
  #8  
Antiguo 20-08-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
hola,

vale, asi lo hare osrac y perdon si no manejo muy bien el foro.

saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
El AVG me tiene aburrido... mlara La Taberna 34 30-05-2008 00:38:24
Que ventajas tiene php frente a asp.net?? CARLOS E PHP 1 14-09-2006 09:42:14
No tiene precio. marcoszorrilla Humor 7 11-07-2006 00:04:21
Que tiene de malo? juliopag1 Firebird e Interbase 0 24-10-2005 05:02:44
Que tiene que ver Php con Delphi? apicito PHP 4 27-07-2004 13:50:08


La franja horaria es GMT +2. Ahora son las 20:19:14.


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
Copyright 1996-2007 Club Delphi