Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No sé exactamente de qué va el hilo este, pero hay que tener en cuenta un 'pequeño' detalle:
recordcount no devuelve el número de registros involucrados en un query.
Habría que ir al último registro (hacer un fetch) para, ahora sí, usar el valor de recordcount.
Resumiendo:
Código Delphi [-]
qry.close;
qry.sql.text:='select nombre from tbclientes where provincia=28';
qry.execquery;
showmessage(inttostr(qry.recordcount));  //  <<---  Esto normalmente devolverá: 1
Responder Con Cita
  #2  
Antiguo 16-06-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No sé exactamente de qué va el hilo este, pero hay que tener en cuenta un 'pequeño' detalle:
recordcount no devuelve el número de registros involucrados en un query.
Habría que ir al último registro (hacer un fetch) para, ahora sí, usar el valor de recordcount.
Resumiendo:
Código Delphi [-]
qry.close;
qry.sql.text:='select nombre from tbclientes where provincia=28';
qry.execquery;
showmessage(inttostr(qry.recordcount));  //  <<---  Esto normalmente devolverá: 1
Hola Casimiro,

Efectivamente te devuelve 1 registro
Código Delphi [-]
qry.close;
qry.sql.text:='select nombre from tbclientes where provincia=28';
qry.execsql;
showmessage(inttostr(qry.recordcount));  //  <<---  Esto normalmente devolverá: 1

Pero esto te devuelve cuantos registros hay
Código Delphi [-]
qry.close;
qry.sql.text:='select nombre from tbclientes where provincia=28';
qry.open;
showmessage(inttostr(qry.recordcount));  //  <<---  Esto devolverá: x registros
qry.close;

Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.

Última edición por olbeup fecha: 16-06-2012 a las 01:38:49.
Responder Con Cita
  #3  
Antiguo 16-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por olbeup Ver Mensaje
Pero esto te devuelve cuantos registros hay
Código Delphi [-]
qry.close; 
qry.sql.text:='select nombre from tbclientes where provincia=28'; 
qry.open; 
showmessage(inttostr(qry.recordcount));  //  <<---  Esto devolverá: x registros 
qry.close;

Un saludo
No, pruébalo y verás que no
Responder Con Cita
  #4  
Antiguo 16-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No, pruébalo y verás que no
Entonces andará mal tu Delphi, porque RecordCount devuelve la cantidad de registros. El nombre de la propiedad lo dice.

Slds.
Responder Con Cita
  #5  
Antiguo 16-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Lo has probado?
Responder Con Cita
  #6  
Antiguo 16-06-2012
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.

Cita:
Habría que ir al último registro (hacer un fetch) para, ahora sí, usar el valor de recordcount.
Casimiro tiene razón. Por otro lado la propiedad RecordCount no funciona bién en todas las bd.

Si tu intención es saber la cantidad de resultados que arrojó tu consulta:
Código Delphi [-]
  qry.SQL.Clear;
  qry.SQL.Text:= 'SELECT COUNT(*) AS CANTIDAD FROM TBCLIENTES WHERE PROVINCIA = 28';
  qry.Open;
  ShowMessage(qry.FieldByName('CANTIDAD').AsString);
  qry.Close;
O, si no te importa, podrías obtenerlo en una misma consulta GROUP BY mediante, pero te devolverá NOMBRE y CANTIDAD.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-06-2012 a las 21:42:32.
Responder Con Cita
  #7  
Antiguo 17-06-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No, pruébalo y verás que no
Tengo muchas aplicaciones así y ninguna me ha fallado, trabajo con SQL SERVER 2005 y hasta ahora RecordCount se ha portado, sólo trabajo con ADOQuery, nunca he trabajado con ADOTABLE que también está el RecordCount, lo he probado muchas veces ADOQuery.RecordCount y devuelve los registros que contiene el ADOQuery, ni más ni menos.

Código SQL [-]
SELECT 
    COUNT(*) AS CANTIDAD 
  FROM TBCLIENTES 
  WHERE PROVINCIA = 28

Esta consulta es más rápida porque sólo devuelve un registro, pero tan válida cómo ADOQuery.RecordCount

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #8  
Antiguo 17-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si el componente que estás usando tiene alguna propiedad del tipo "FetchAllRecords" y está a True, entonces es el motivo por el que te funciona el recordcount.
Pero ten en cuenta que eso es sólo por lo que he comentado, por el valor de una propiedad, ya que un select a una base de datos no puede saber cuántos registros involucra, salvo que vaya hasta el último, es algo elemental que verás en cualquier tutorial sql de cualquier base de datos.
Tenlo presente, y no te encabezones , RecordCount NO devuelve el número de registros. Salvo que sea una tabla plana, que no es el caso.
Responder Con Cita
  #9  
Antiguo 17-06-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Estas hablando de la paleta dbExpress, estos componentes aun no los he utilizado y no puedo verificar lo que dices, pero con ADO esto no pasa.

quizás me haya desviado un poquito, mil disculpas.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #10  
Antiguo 17-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por olbeup Ver Mensaje
Estas hablando de la paleta dbExpress, estos componentes aun no los he utilizado y no puedo verificar lo que dices, pero con ADO esto no pasa.

quizás me haya desviado un poquito, mil disculpas.

Un saludo.
Si utilizo los de esa paleta para este caso, no hay problema!. Pero puede que veas algunos post míos con los componentes de ADO ya que también los utilizo. Slds.
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
RecordCount -1 bjaeger Conexión con bases de datos 2 27-01-2010 03:14:53
Problema con la funcion recordcount de los TIBQuery capo979 Conexión con bases de datos 14 26-03-2008 16:02:02
SQL y RecordCount UREÑA SQL 5 28-08-2007 14:32:14
Problema con TQuery.RecordCount kuan-yiu Varios 4 26-10-2006 18:54:31
Problema con un RecordCount Lucciano Conexión con bases de datos 4 07-04-2006 15:40:54


La franja horaria es GMT +2. Ahora son las 12:04: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