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 09-12-2004
Pascual Montes Pascual Montes is offline
Baneado
 
Registrado: nov 2004
Posts: 76
Poder: 0
Pascual Montes Va por buen camino
Query, como saber el numero de Registros ?

hola amigos, Sabes tengo una rutina en donde hago un filtro por medio
de un query, y necesito saber cuantos registros cumplieron la condicion
de ese query, como puedo obtener ese dato ?

mi rutina es esta:


DATa.q1.close;
DATa.Q1.SQL.Clear;
DATA.q1.SQL.Add('SELECT * FROM '+#34+cruta+#34+' WHERE fecha between '+#34+sfechaini+#34+' and '+#34+sfechafin+#34' ORDER BY numempleado');
DATA.Q1.OPEN;

y en otro procedimiento es lo siguiente :
while not data.q1.Eof DO BEGIN
CNT:=CNT+1;
CADENA:='9999000000@'+copy(edit1.text,1,1);

cad2:=RELLENACONCEROS(data.TCHECANumempleado.VALUE,8);
CAD3:=COPY(CAD2,8,1);
CAD2:=COPY(CAD2,3,5);
CADENA:=CADENA+CAD2+CAD3;


Present:= Now;
DecodeDate(data.q1Fecha.value, Year, Month, Day);

CAD2:=IntToStr(MONTH);
CAD2:=RELLENACONCEROS(CAD2,2);
CADENA:=CADENA+CAD2;

CAD2:=IntToStr(Day);
CAD2:=RELLENACONCEROS(CAD2,2);
CADENA:=CADENA+CAD2;

DecodeTime(data.q1Hora.value, Hour, Min, Sec, MSec);
CAD2:=IntToStr(HOUR);
CAD2:=RELLENACONCEROS(CAD2,2);
CADENA:=CADENA+CAD2;

CAD2:=IntToStr(MIN);
CAD2:=RELLENACONCEROS(CAD2,2);
CADENA:=CADENA+CAD2+'1';

WRITELN(F, Cadena);
data.q1.Next;
END;
closeFILE(f); // CERRAR EL ARCHIVO MUY IMPORTANTE
memo1.Lines.Add('Archivo Reloj.dat Creado con Exito');
memo1.Lines.Add('Para Incorporarlo o Importarlo de su');
memo1.Lines.Add('Sistema de Nomina, Entre y Ejecute ese Proceso ');

biniciar.enabled:=false;
bpreparar.SetFocus;


Te agradezco mucho tu ayuda.
Saludos
Responder Con Cita
  #2  
Antiguo 09-12-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Depende del motor que estes utilizando:
Código Delphi [-]
xxx:=DATa.q1.RecordCount;

En otros tendras que ejecutar la instrucción SQL:
Count
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 09-12-2004
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Hola,
quisiera puntualizar que para que RecordCount tenga el valor correcto,
es decir, el número total de registros de la query, debes ejecutar previamente el método Last de esa query para asegurarte.

Salu2.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #4  
Antiguo 09-12-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opción, es lanzar la misma sentencia que tienes, pero cambiando el * por Count(*) y eliminando el "ORDER BY"; Una variante mejor es en lugar de Count(*), porner Count(Campo_clave_primaria).
En tu caso:
DATA.q1.SQL.Add('SELECT Count(*) AS NUMREG FROM '+#34+cruta+#34+' WHERE fecha between '+#34+sfechaini+#34+' and '+#34+sfechafin+#34);

Te devoverá un único registro con un campo NUMREG con el número de registros.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 09-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por defcon1_es
Hola,
quisiera puntualizar que para que RecordCount tenga el valor correcto,
es decir, el número total de registros de la query, debes ejecutar previamente el método Last de esa query para asegurarte.
Esto depende de la base que esté usando. En la mayoría de casos, con servidores SQL, así es, pero en base de buró como Paradox o DBase no es necesario.

Y aprovechemos también para aclararle a Pascual Montes que en el caso de servidores SQL, la mejor opción será la del COUNT que ya señalan Marcos y Neftali pues el uso de Last ocasiona que todos los registros sean traídos desde el servidor con el respectivo decremento en el desempeño.

// Saludos
Responder Con Cita
  #6  
Antiguo 09-12-2004
Pascual Montes Pascual Montes is offline
Baneado
 
Registrado: nov 2004
Posts: 76
Poder: 0
Pascual Montes Va por buen camino
Gracias, Problema Resuelto !!!

Perfect, gracias a su ayuda ya resolvi este detalle de saber
el numero de registros, me sirvio recordcount .

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


La franja horaria es GMT +2. Ahora son las 00:37:30.


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