Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-05-2022
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Devolver valor Count en un TQuery

Me gustaría ejecutar un TQuery.SQL de modo que pueda obtener un dato Count (*) From TableX Where FieldX= 'Texto' y que el dato volviera a Delphi en forma de Variable.
No tengo mucha idea pero si sospecho que hay que usar un Query1.Fields[0].
Antes de enviar código de aficionado me gustaría tener alguna idea de como hacerlo.
Saludos.
bulc
Responder Con Cita
  #2  
Antiguo 12-05-2022
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.

Un ejemplo:
Código Delphi [-]
begin
  Query.Close;
  Query.Sql.Clear;
  Query.Sql.Add( 'SELECT COUNT(*) AS TOTAL' );
  Query.Sql.Add( 'FROM COUNTRY WHERE CONTINENT = :CONT' );
  Query.ParamByName( 'CONT' ).AsString := 'South America';
  Query.Open;
  ShowMessage( Query.FieldByName( 'TOTAL' ).AsString );
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 12-05-2022
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Gracias. Y además muy clarito

Nada que añadir.
Un saludo afectuoso.
bulc
Responder Con Cita
  #4  
Antiguo 13-05-2022
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
Cita:
Empezado por bulc Ver Mensaje
Me gustaría ejecutar un TQuery.SQL de modo que pueda obtener un dato Count (*) ...
Sólo como comentario, cuando nos interesa realizar un count (sólo un count), siempre es mejor utilizar COUNT(ID) en lugar de COUNT(*), siendo el ID la clave primaria de la tabla.
Es un pequeño detalle, pero si uno se acostumbra, en tablas grandes (o muy "anchas") siempre mejora un poquito el rendimiento.
__________________
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 13-05-2022
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
OK. tomo nota

Estaría perdido sin Club Delphi.
Saludos.
bulc
Responder Con Cita
  #6  
Antiguo 13-05-2022
PepCat PepCat is offline
Miembro
 
Registrado: mar 2017
Posts: 96
Poder: 8
PepCat Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Sólo como comentario, cuando nos interesa realizar un count (sólo un count), siempre es mejor utilizar COUNT(ID) en lugar de COUNT(*), siendo el ID la clave primaria de la tabla.
Es un pequeño detalle, pero si uno se acostumbra, en tablas grandes (o muy "anchas") siempre mejora un poquito el rendimiento.
Vaya, muy inetersante!! Gracias por este detalle!
Responder Con Cita
  #7  
Antiguo 13-05-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Son normas básicas de SQL, si se hace un select count(*) de una tabla de artículos, por ejemplo, que tiene montones de campos, tardará mucho más que un select count(id) que sólamente "mirará" el valor del índice de esa clave primaria.
Responder Con Cita
  #8  
Antiguo 13-05-2022
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
No me acaba de ir bien.

En una aplicación el TQuery no encuentra el campo. He probado en otra más sencilla y tampoco va. Para no dejar los datos en blanco he puesto el TrY-Except.
El caso es que no me funciona. A ver cómo lo ves tú.
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
Var
 Dato : Integer;     Total: Integer;
BEGIN
 TRY
   Q1.Close;
   Q1.SQL.Clear; //
   Q1.SQL.Add('Select COUNT (ID) as Total FROM DCOLOR where CAT = :Medidas ' ) ;
   Q1.ParamByName('Medidas').AsString := '215X150' ;
   Q1.Open ;     // = Q.Active := True ;
   ShowMessage( 'Registros: ' + Q1.FieldByName('Total').AsString ) ;
 EXCEPT
   ShowMessage( 'Except side');
  Q1.SQL.Clear; //Time to find nº Edifil
  Q1.SQL.Text :='SELECT * FROM DCOLOR ORDER BY ID' ;
  Q1.Open;
 END;
 end;
Un saludo.
bulc
Responder Con Cita
  #9  
Antiguo 13-05-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
"No va", "no funciona", "no encuentra"... no es información para que se te pueda ayudar. Debes copiar exactamente el mensaje de error.
Pregunta tonta: ¿tu campo clave se llama id?
Responder Con Cita
  #10  
Antiguo 14-05-2022
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
Cita:
Empezado por bulc Ver Mensaje
El caso es que no me funciona.
¿Qué número de registros te devuelve?
¿Qué muestra este ShowMessage?
Código Delphi [-]
ShowMessage( 'Registros: ' + Q1.FieldByName('Total').AsString );
¿Si lanzas esta consulta directamente, qué te evuelve?
Código SQL [-]
Select COUNT (ID) as Total FROM DCOLOR where CAT = '215X150'
__________________
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
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
Devolver valor al cerrar formulario Kandorf OOP 3 12-04-2010 21:13:50
Devolver el valor de una clave principiante22 Varios 4 03-09-2008 03:13:42
valor de SELECT COUNT maruenda SQL 15 25-05-2007 22:58:38
Devolver Valor de un Caption muli OOP 2 24-04-2007 20:21:32
Devolver sólo el primer valor de una 2ª tabla gluglu SQL 2 05-01-2006 09:44:41


La franja horaria es GMT +2. Ahora son las 07:36:36.


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