Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Como trabaja RecordCount de las Tablas Paradox??? (https://www.clubdelphi.com/foros/showthread.php?t=8565)

JamesBond_Mx 25-03-2004 22:12:37

Como trabaja RecordCount de las Tablas Paradox???
 
Hola honorable grupo, tengo un pequeño problema con el RecordCount, resulta que lo estoy utilizando para obtener la cantidad de registros almacenados en mi tabla, y lo plasme en una etiqueta, y que cada que se agrega un registro se vaya actualizando este dato, pero al abrir el formulario, me indica bien la cantidad de registros existentes, pero al agregar uno y aplicar el ApplyUpdates en lugar de aunmentar en uno el numero de registros lo aunmenta en dos y despues en tres y asi susecivamente, ¿por que hace esto???, cual es el error???

Gracias.

marcoszorrilla 25-03-2004 22:18:17

¿Por qué no pones el código?

A ver si te podemos ayudar, yo te garantizo que RecordCount funciona perfectamente.

Un Saludo.

JamesBond_Mx 25-03-2004 22:25:57

Aqui es donde utilizo el RecordCount
Cita:

procedure TAnomal.ActuaClick(Sender: TObject);
Var
Cuenta:Integer;
begin
If DBEResp.Text = 'Algo' then
DBECveREsp.Text:='06';
if DBEEStado.Text = 'Corregida' Then
DBEEstado.Color:=clRed
else
DBEEstado.Color:=clYellow;

try
Modulo1.Anoma.ApplyUpdates;
except
on Exception do
begin
ShowMessage('Esta anomalía ya habia sido capturada');
DBEResp.Visible:=False;
LResp.Visible:=False;
LFechaD.Visible:=False;
DBEFechaD.Visible:=False;
DBRGClasi.Visible:=False;
DBRGRiesgo.Visible:=False;
LFechaP.Visible:=False;
DBEFechaP.Visible:=False;
LFechaC.Visible:=False;
DBEFechaC.Visible:=False;
LEstado.Visible:=False;
DBEEstado.Visible:=False;
LDesc.Visible:=False;
DBMDesc.Visible:=False;
CBTipoInst.ItemIndex:=-1;
DBLCBInst.KeyValue:='';
DBLCBInst.Visible:=False;
LNomAnom.Visible:=False;
Modulo1.Anoma.Delete;
Modulo1.Anoma.Append;
end;
end;
Modulo1.Anoma.Refresh;
Cuenta:=Modulo1.Anoma.RecordCount;
Cuenta:=Cuenta-1;
Cant.Caption:=IntToStr(Cuenta);
end;
A ver que en que estoy mal

__cadetill 25-03-2004 23:13:49

Aunque no responda directamente a tu pregunta....

Si tienes las rusas instaladas (las RxLib), éstas tienen el componente TDbStatusLabel precisamente para esto.

Eso si, funciona muy bien para bases de datos de escritorio (Paradox, DBase,..) pero para bases de datos relacionales, no te funcionará ni este componente ni el RecordCount (a no ser que hagas un Last de la tabla, cuyo casi te funcionará tanto una solución como la otra)

Espero te sirva

JamesBond_Mx 26-03-2004 01:10:45

Pues no me ha servido de mucho, para empezar ¿como le indico que solo me muestre la cantidad de registros que tiene la tabla??

Por que me indica esto:

117:118

entiendo que el primero número es el registro en el que está actualmente 117 (el último), pero el 118 ¿por que?? si solo son 117??? ¿que significa?

__cadetill 26-03-2004 01:19:57

El primer número es el registro en el que nos encontramos y, el segundo, es la cantidad de registros que tiene la tabla. Si haces un

select count(*)
from tabla

en tu caso, debería de darte 118

Por otro lado, el registro actual, creo que no se puede quitar (a no ser que modifiques los fuentes, claro ;) )

JamesBond_Mx 26-03-2004 02:18:54

Pero la tabla solo tiene 117 Registros, por que el 118???

__cadetill 26-03-2004 14:17:58

Cita:

Empezado por JamesBond_Mx
Pero la tabla solo tiene 117 Registros, por que el 118???

Quizás es un bug de los componentes (y nunca me había dado cuenta :o) pero... estás seguro que no tiene 118?? lo has comprovado?

JamesBond_Mx 26-03-2004 14:57:14

Comprobadisimo, solo tengo 117, y el detalle es este, si inicio la aplicacion me muestra desde un principio la cantidad que tengo 117 por ejemplo, si agrego un registro mas, me actualiza a 118, pero si agrego uno más, en lugar de poner 119 que es lo lógico pone 120, y si agrego otro pone 122, y si agrego otro pone 125, y asi se va aumentando, primero 1, luego 2, luego 3 etc. como que no esta bien ¿no?

__cadetill 26-03-2004 15:31:50

Pues lo acabo de probar y a mi me ha funcionado bien :confused:

Por otra parte, he visto que sí se puede sacar el número totales de registros, poniendo la propiedad CalcRecCount a false

marcoszorrilla 26-03-2004 15:43:16

He colocado un rejilla y he dado altas, bajas y siempre me marca el número correcto de registros:
Código:

procedure TForm1.FormActivate(Sender: TObject);
begin
label1.Caption:=IntToStr(Table1.RecordCount);
end;

procedure TForm1.Table1AfterDelete(DataSet: TDataSet);
begin
label1.Caption:=IntToStr(Table1.RecordCount);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Append;
end;

procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
label1.Caption:=IntToStr(Table1.RecordCount);
end;

Un Saludo.

eduarcol 27-03-2004 21:17:36

Porq no sacas el recordcount de alli y lo colocas en el AfterPost

Cant.Caption:=IntToStr(Modulo1.Anoma.RecordCount;);

JamesBond_Mx 06-04-2004 16:42:48

Efectivamente, no se por que sea, pero después de hacer el post, trabaja muy bien...
Gracias


La franja horaria es GMT +2. Ahora son las 17:21:12.

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