Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2013
giantonti giantonti is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 26
Poder: 0
giantonti Va por buen camino
Cool Resultado del count(*) en label

buen dia foro
Estoy tratando de hacer un evento desde un timer, y lo que quiero que cuentes los registros de una tabla que cumplan con la condicion que yo le índigo y que estos resultados se muestren en un label.
lo estoy haciendo de esta forma pero me da error.
Código SQL [-]
     adoQuery1.Close;
      adoQuery1.Sql.Clear;
      LabelSol.Text := adoQuery1.Sql.Add('SELECT COUNT(*) AS Expr1' +
                        'where estatus = '+'Abierto');
      adoQuery1.Open;

si alguien ya ha pasado por eso agradeceria su ayuda.
Responder Con Cita
  #2  
Antiguo 07-04-2013
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 giantonti.

En principio a tu sentencia SQL le falta especificar la tabla de la cuál se obtendrá la información.
Código SQL [-]
SELECT (columna o funcion)
FROM  TABLA  /* falta */
WHERE (condicion)

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 07-04-2013
beginner01 beginner01 is offline
Miembro
NULL
 
Registrado: mar 2011
Ubicación: República Dominicana
Posts: 181
Poder: 14
beginner01 Va por buen camino
Cita:
Empezado por giantonti Ver Mensaje
buen dia foro
Estoy tratando de hacer un evento desde un timer, y lo que quiero que cuentes los registros de una tabla que cumplan con la condicion que yo le índigo y que estos resultados se muestren en un label.
lo estoy haciendo de esta forma pero me da error.
Código SQL [-]
     adoQuery1.Close;
      adoQuery1.Sql.Clear;
      LabelSol.Text := adoQuery1.Sql.Add('SELECT COUNT(*) AS Expr1' +
                        'where estatus = '+'Abierto');
      adoQuery1.Open;

si alguien ya ha pasado por eso agradeceria su ayuda.
Hola.

Ademas de faltarte el nombre de la tabla como comenta ecfisa también en tu condición pareces estar evaluando una cadena la cual debería de estar entre comillas (''), pero como lo estas haciendo te saldrá sin ellas
y daría error.

Código Delphi [-]
      LabelSol.Text := adoQuery1.Sql.Add('SELECT COUNT(*) AS Expr1' +
                        'where estatus = '+'Abierto');

en la parte en rojo estas según lo que veo debería ser.

Código Delphi [-]
      LabelSol.Text := adoQuery1.Sql.Add('SELECT COUNT(*) AS Expr1' +
                        'where estatus= '+'''Abierto''');

Te quedaría algo así
Código SQL [-]
SELECT COUNT(*) AS Expr1 [from [TuTabla]]  where estatus= 'Abierto'

En la parte en azul estas asignando un entero a una propiedad de tipo string lo que te dará error y no queda claro que persigues con esa parte.
Responder Con Cita
  #4  
Antiguo 07-04-2013
giantonti giantonti is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 26
Poder: 0
giantonti Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola giantonti.

En principio a tu sentencia SQL le falta especificar la tabla de la cuál se obtendrá la información.
Código SQL [-]
SELECT (columna o funcion)
FROM  TABLA  /* falta */
WHERE (condicion)

Saludos.
la sentencia ya posee la tabla que esta dentro del adoquery1, para entender mejor te envio la sentencia modificada talves con eso podra ayudarme.

Código Delphi [-]
TABLA.Close;
      TABLA.Sql.Clear;
      LabelSol.Text := TABLA.Sql.Add('SELECT COUNT(*) AS Expr1' +
                        'where estatus = '+'Abierto');
      TABLA.Open;
Responder Con Cita
  #5  
Antiguo 07-04-2013
giantonti giantonti is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 26
Poder: 0
giantonti Va por buen camino
Cita:
Empezado por beginner01 Ver Mensaje
Hola.

Ademas de faltarte el nombre de la tabla como comenta ecfisa también en tu condición pareces estar evaluando una cadena la cual debería de estar entre comillas (''), pero como lo estas haciendo te saldrá sin ellas
y daría error.

Código Delphi [-]
      LabelSol.Text := adoQuery1.Sql.Add('SELECT COUNT(*) AS Expr1' +
                        'where estatus = '+'Abierto');

en la parte en rojo estas según lo que veo debería ser.

Código Delphi [-]
      LabelSol.Text := adoQuery1.Sql.Add('SELECT COUNT(*) AS Expr1' +
                        'where estatus= '+'''Abierto''');

Te quedaría algo así
Código SQL [-]
SELECT COUNT(*) AS Expr1 [from [TuTabla]]  where estatus= 'Abierto'

En la parte en azul estas asignando un entero a una propiedad de tipo string lo que te dará error y no queda claro que persigues con esa parte.
Copio esta sentencia talcual como la pasaste y no funciona, talvez aun le faltara algun punto o parentesis en algun lado. Ha! no mencione al principio que soy novato en la materia.
Responder Con Cita
  #6  
Antiguo 07-04-2013
giantonti giantonti is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 26
Poder: 0
giantonti Va por buen camino
lo probe de esta forma y cuando lo ejecuto me da un error 'Sintaxis incorecta cerca de '.'

Código Delphi [-]
adoQuery1.Close;
      adoQuery1.Sql.Clear;
      adoQuery1.Sql.Add('SELECT COUNT(*) AS '+'laLabel1.text+' +
                         'from incidencia' +
                         'where estatus= '+'''Abierto''');
      adoQuery1.Open;

y colocandola asi me da un error que dice: [dcc32 Error] fromPrincipal.pas(105): E2010 Incompatible types: 'string' and 'Integer'

[delphi] adoQuery1.Close;
adoQuery1.Sql.Clear;
LabelSol.Text := adoQuery1.Sql.Add('SELECT COUNT(*) AS Expr1' +
'from incidencia' +
'where estatus= '+'''Abierto''');
adoQuery1.Open;[delphi]
Responder Con Cita
  #7  
Antiguo 07-04-2013
beginner01 beginner01 is offline
Miembro
NULL
 
Registrado: mar 2011
Ubicación: República Dominicana
Posts: 181
Poder: 14
beginner01 Va por buen camino
Cita:
Empezado por giantonti Ver Mensaje
lo probe de esta forma y cuando lo ejecuto me da un error 'Sintaxis incorecta cerca de '.'

Código Delphi [-]
adoQuery1.Close;
      adoQuery1.Sql.Clear;
      adoQuery1.Sql.Add('SELECT COUNT(*) AS '+'laLabel1.text+' +
                         'from incidencia' +
                         'where estatus= '+'''Abierto''');
      adoQuery1.Open;
Prueba así.

Código Delphi [-]
adoQuery1.Close;
      adoQuery1.Sql.Clear;
      adoQuery1.Sql.Add('SELECT COUNT(*) AS '+laLabel1.Caption +
                           ' from incidencia' +
                           ' where estatus= '+'''Abierto''');
      adoQuery1.Open;
{
Para ver la cantidad de registro puedes poner.
  Label1.Caption := adoQuery1.Fields[0].AsString;
}


Si te da un error escríbelo en el mensaje.
Responder Con Cita
  #8  
Antiguo 07-04-2013
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:
Empezado por giantonti Ver Mensaje
la sentencia ya posee la tabla que esta dentro del adoquery1, para entender mejor te envio la sentencia modificada talves con eso podra ayudarme.
Hola.

Eso no tiene ninguna implicancia ya que al asignarle un nuevo valor a la propiedad Text, la sentencia anterior es sobreescrita.

Basándome en el código de tu primer mensaje, proba de este modo:
Código Delphi [-]
 with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT COUNT(*)');
    SQL.Add('FROM NOMBRE_DE_TU_TABLA AS EXPR1'); // (*)
    SQL.Add('WHERE ESTATUS = ''Abierto''');
    Open;
  end;
(*) Reemplaza "NOMBRE_DE_TU_TABLA" por el nombre de tu tabla


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 07-04-2013
giantonti giantonti is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 26
Poder: 0
giantonti Va por buen camino
gracias por tu pronta respuesta coloque tu sugerencia y me da el siguiente error : AdoQuery1:field 'id' Not Faund. esta haciendo referencia a una columna de la tabla. El valor que arroje este resultado del count debe ir en un label y no tengo idea de como hacerlo.
Responder Con Cita
  #10  
Antiguo 07-04-2013
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:
Empezado por giantonti Ver Mensaje
El valor que arroje este resultado del count debe ir en un label y no tengo idea de como hacerlo.
Así tiene que mostrar el resultado en el TLabel:
Código Delphi [-]
  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT COUNT(*) AS EXPR1');// (*)
    SQL.Add('FROM NOMBRE_DE_TU_TABLA'); 
    SQL.Add('WHERE ESTATUS = ''Abierto''');
    Open;
    Label1.Caption := FieldByName('EXPR1').AsString;
 end;
(*) Aprovecho a rectificar un error del código que te puse en el mensaje #8 (lo hice al vuelo, disculpas )

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 07-04-2013
giantonti giantonti is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 26
Poder: 0
giantonti Va por buen camino
no hay nada que disculpar amigo, agradezco tu apoyo. Aun sigue dandome el mismo error 'id'
Responder Con Cita
  #12  
Antiguo 07-04-2013
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:
Empezado por giantonti Ver Mensaje
no hay nada que disculpar amigo, agradezco tu apoyo. Aun sigue dandome el mismo error 'id'
Pero no existe 'ID' en la sentencia que te puse...

¿ Podrías poner textualmente la sentencia SQL que estas usando y lo mismo con el mensaje de error ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 07-04-2013
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
Cita:
Empezado por giantonti Ver Mensaje
gracias por tu pronta respuesta coloque tu sugerencia y me da el siguiente error : AdoQuery1:field 'id' Not Faund. esta haciendo referencia a una columna de la tabla. El valor que arroje este resultado del count debe ir en un label y no tengo idea de como hacerlo.
No tenemos bola mágica para adivinar. Copia y pega tu consulta y también el mensaje de error.
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
count desc en sql jafera SQL 2 03-02-2010 12:08:08
Sintaxis con count zvf SQL 17 31-01-2008 01:02:18
SQL y clausula Count karlaoax SQL 14 17-09-2007 19:35:55
sentencia count()..... hook SQL 8 04-05-2004 14:53:04
Resultado de Count en SQL MRang14 SQL 2 05-03-2004 19:42:47


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


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