PDA

Ver la Versión Completa : no funciona el recordcount


Irina
12-06-2003, 18:22:00
Hola foro, mi duda es la siguiente:

hago el recordcount de una tabla y lo asigno a una variable, pero el resultado que me da no es correcto, porque si yo tengo 2 datos metidos en la tabla me muestra que solo tengo uno.

ejemplo:
variable:=(datamodule.tabla.recordcount + 1);

Falla algo del codigo? O es que no se hace asi, o cual es el problema, Espero que alguien me pueda ayudar porque me estoy volviendo loca.

Gracias.

__marcsc
12-06-2003, 18:26:58
Qué componentes de acceso a BD utilizas? (BDE, ADO, IBX...)

En según que componentes, dependiendo del ciertas opciones, el RecordCount no funciona bien :eek:

Saludos.

Irina
12-06-2003, 18:52:35
utilizo la paleta interbase, y lka tabla la tengo conectada con un ibtable

__cadetill
12-06-2003, 20:56:04
bueno, te dice que tienes 1 porque hacer

RecordCount + 1

:p

Lo que yo utilizo (y que nunca falla) es una sentencia SQL (los RecordCount ya me han dado demasiodos dolores de cabeza :p)

select count(*) from tabla

Espero te sirva

gatosoft
13-06-2003, 00:12:33
Pues realmente me parece extraño, pues a mi siempre me a ha funcionado el RecordCount y confio siegamente en el... sobre todo si es de un componente nativo de Delphi.

En cuanto a la solucion de Cadetill, creo que es buena, pero si ya tienes una tabla abierta deberias poder utilizarla y no tener que recurrir a una segunda estrategia.

¿Has hecho mas pruebas...?, me refiero que si ¿has observado si siempre la diferencia es 1 elemento, o te salen valores incorrectos en forma aleatoria?

y otra cosa... tampoco entiendo por que el "recordcount +1"


saludos...

kinobi
13-06-2003, 02:09:04
Hola,

Posteado originalmente por gatosoft
Pues realmente me parece extraño, pues a mi siempre me a ha funcionado el RecordCount y confio siegamente en el... sobre todo si es de un componente nativo de Delphi.

en realidad puedes confiar en él, pero sabiendo, en el caso de los Dataset's IBX, que lo que devuelve no es la cuenta de filas en la tabla (o consulta) a la que esta enlazado en el Dataset, sino el número de registros por los que te has desplazado en el mismo. De ahí que en la apertura del Dataset la propiedad RecordCount valga 1. Si tras la apertura del Dataset provocas un recorrido completo, por ejemplo con una llamada al método Last, comprobarás como el valor de RecordCount coincide con el número de registros real del Dataset.

Saludos.

Irina
13-06-2003, 18:43:05
Bueno xicos gracias por vuestra ayuda, pero ya lo he solucionado.

He hecho una consulta, select max,
al resultado de esta le he sumado uno, para asi conseguir el valor siguiente consecutivo.

Espero que os sirva de ayuda.

Gracias por la vuestra de nuevo.

Un saludo :D

__cadetill
13-06-2003, 19:03:00
Posteado originalmente por Irina
He hecho una consulta, select max,


Pero eso no era lo que tu preguntabas!! :confused:

Max te devuelve el nº mas grande del campo especificado, no el nº de registros de una tabla :confused:

Irina
13-06-2003, 19:21:38
Ya, tienes razon, me equivoque al poner la pregunta.
Lo siento por armaros ese pequeño lio, jiji :D

Espero no meter la pata la proxima vez.

Hasta la proxima.