Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como mantener camp.numero en Dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=2726)

kia 04-08-2003 20:33:51

Como mantener camp.numero en Dbgrid
 
Hola a todos.
Vereis tengo un Dbgrid con un campo numerico (integer) que se graba en tabla1. Dicho campo lo controla el programa aumentando en una unidad cuando se añade un reg.
manteniendose siempre aunque haya borrados. Logicamente utiltzando la tabla el numero es diferente ya que tiene en cuenta los que se borran; y no me sirve.

Alguna idea para guardar ese ultimo número del Dbgrid, para paderlo utilizar desde otros formularios.
Salu2 Kia. ;)

andres1569 04-08-2003 21:04:32

:confused: Por favor, redefine los términos de tu pregunta.

en concreto:
Cita:

Logicamente utiltzando la tabla el numero es diferente ya que tiene en cuenta los que se borran; y no me sirve.
:confused:

kia 05-08-2003 11:59:42

Hola.

Haber si me explico.
Tengo una tabla con un campo numerico(Integer) que utilizo de contador. (Los datos vienen de otra aplicacion y ya lo llevaba.)

La visualizo en un DBgrid y cuando agrego un nuevo reg. el campo numerico aumenta en una unidad siempre.
Si borro un reg. se mantiene el mismo nunero (no disminuye),
interesa que funcione asi.

Cuando efectuo un Append en el Dbgrid el campo numerico es 2390.

Si efectuo un table1.RecNo o table1.RecordCount el resultado es 2282. (diferencia de los reg.borrdos supongo...)

¿Como puedo guardar el ...2390...para poder usarlo en otros formularios?.
Un salu2. Kia ;)

andres1569 05-08-2003 12:37:20

Hola Kia:

Ahora te entendí mejor, aunque me quedan algunas dudas. Dices que dicho campo, si efectúas un borrado, se queda con el máximo valor que tenía. ¿Esto lo implementas "a mano", es decir, mantienes en alguna variable ese máximo para asignárselo la próxima vez?

Me extraña que el campo sea de tipo Integer, puesto que ese comportamiento que deseas se obtiene simplemente usando un campo AutoInc (son compatibles los AutoInc con los Integer así que si lo cambias en la estructura de la tabla, no te dará problemas). Si no lo tienes como AutoInc (o autoincrementativo), prueba de cambiarlo y a partir de ese momento ya no tendrás que encargarte de mantener ese valor, el mismo motor de BD (¿Paradox tal vez?) que uses se encargará de asignar el nuevo valor cuando das de alta un nuevo registro.

Dejándolo como Integer, lo que pides es difícil. Es decir, salvo que almacenes en algún lugar perenne (archivo .ini, otra tabla ...etc) el último valor introducido, no habrá forma de saber en otra ocasión (ni en otros formularios) qué número era. La ventaja de los AutoInc es que sí guardan ese número en la tabla misma.

kia 05-08-2003 14:32:07

Hola Andres

A veces una tiene una fijacion en una cosa y no le deja ver la solución.

Los datos vinieron de una aplicacion dbf y el campo autoinc. que mencionas no lo acepto cuando se trapaso a paradox. Nose por que motivo. Pero ya no es inportante.
La solución que he aplicado a sido el fichero INI. que me has mencionado. La verdad ni me acordaba.
Y funciona.

Gracias Kia.;)

andres1569 05-08-2003 17:24:52

Hola Kia:

Disculpa si te parezco pesado pero insisto en que lo mejor es que conviertas ese campo a AutoInc. Quizás te dio problemas en el traspaso, pero si tratas de convertirlo ahora, cosa que he hecho muchas veces, no debe darte problemas.

Lo de implementarlo guardandolo en un INI, fue una idea que me vino a la cabeza, algo ilustrativa, pero es una solución nada ortodoxa.

Saludos


La franja horaria es GMT +2. Ahora son las 06:16:59.

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