Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   no funciona el recordcount (https://www.clubdelphi.com/foros/showthread.php?t=1395)

Irina 12-06-2003 18:22:00

no funciona el recordcount
 
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,

Cita:

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

Cita:

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.


La franja horaria es GMT +2. Ahora son las 20:24:35.

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