Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con TQuery.RecordCount (https://www.clubdelphi.com/foros/showthread.php?t=36845)

kuan-yiu 26-10-2006 13:56:29

Problema con TQuery.RecordCount
 
Hola a todos y gracias de antemano por vuestro tiempo.

Me acaba de aparecer un problema fantasma. Lo llamo así porque ayer no estaba y hoy me está volviendo loca.
Ejecuto una consulta, me aseguro que tiene datos y siempre que llego a la línea en la que está "RecordCount" me da -1.
Código Delphi [-]
  qinforme.Close;
  qinforme.Open;
//...
  if qinforme.IsEmpty then
    begin
      ShowMessage('No hay datos');
      exit;
    end;
//...
      ProgressBar1.Position:= 0;
      ProgressBar1.Min:= 0;
      ProgressBar1.Max:= qinforme.RecordCount;
He cambiado la consulta, para añadirle un nuevo campo, es todo lo que he hecho... salvo tecleos o borrados accidentales de los que no soy consciente (que me lo estoy planteando).

Lepe 26-10-2006 16:25:49

RecordCount solo funciona con Paradox, el resto de BBDD no implementan dicha propiedad, ya que es un consumo elevado de recursos.

Si necesitas saber el número de registros, utiliza una consulta:
Código SQL [-]
select  Count(ClavePrimaria) from PioPio

Saludos

kuan-yiu 26-10-2006 17:02:53

Cita:

Empezado por Lepe
RecordCount solo funciona con Paradox, el resto de BBDD no implementan dicha propiedad, ya que es un consumo elevado de recursos.

Si necesitas saber el número de registros, utiliza una consulta:
Código SQL [-]
select  Count(ClavePrimaria) from PioPio

Saludos

Ya, eso he leído en la ayuda, pero lo gracioso es que esa función lo usa desde hace casi un año (con una BD Oracle9i) y no había fallado hasta hoy :confused:

Además después de volver a una versión anterior del formulario he descubierto que el error aparece cuando le añado el nuevo campo a la antigua consulta. Pero un cambio similar ya lo había hecho hace unas semanas y no me había dado estos problemas.
Si hubiese fallado siempre lo entendería, pero es que estoy haciendo pruebas y si le añado el nuevo campo que necesito a la consulta (un varchar de 1000) entonces RecordCount deja de funcionar y si se lo quito vuelve a funcionar :confused:

¿Tendrá algo que ver el inusual tamaño del campo con que falle de este modo?

Lepe 26-10-2006 18:24:18

Podría ser.

Al menos lo veo lógico, Oracle es por algo el mejor SGBBDD, puede que estime los tiempos/recursos necesarios para calcular esa propiedad... si es demasiado, pues no lo hace (que conste que solo lo intuyo).

PD: Yo pensaba que no habías testeado esa parte, o bien no lo habías tenido en cuenta, ya veo gratamente que me equivocaba ;).

Saludos

kuan-yiu 26-10-2006 18:54:31

He decidido cambiar esa línea de código, después de este misterioso fallo no me ofrece ninguna seguridad, así que la cambiaré por una consulta como la que sugieres.



PD:
Cita:

Empezado por Lepe
[...]
PD: Yo pensaba que no habías testeado esa parte, o bien no lo habías tenido en cuenta, ya veo gratamente que me equivocaba ;).

:o


La franja horaria es GMT +2. Ahora son las 05:04:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi