Delphi - solo para expertos en Bd´s !!!!!

 
Vista:

solo para expertos en Bd´s !!!!!

Publicado por Janeth Moreno (10 intervenciones) el 09/03/2002 05:30:24
hola:
mi problema es el siguiente, estoy haciendo una base de datos en Delphi, y para ello utilizo una tabla hecha en paradox 7, donde la llave principal es un campo autoinvremento, pues bien, ya practicamente lña termine, pero me acabo de topra con la sorpresa de que va a comenzar en el numero de registro que me quede, supongamos que ya llevaba 7 registros pues el siguiente seria el registro numero 8.
la quise vaciar la tabla, para que comenzara de nueva cuenta en el numero 1, pero no pude, ya que aunque no existan ya los registros, me comienza a contar desde el ultimo numero en que se quedo, ese es pues mi problema, si me pudieran ayudar en mucho se los agradeceria.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:solo para expertos en Bd´s !!!!!

Publicado por Ceco (1 intervención) el 10/03/2002 17:44:16
Los campos autoincrementales no dependen del número de registros que tengas en tu tabla, me explico, si borras algún registro ó vacías la tabla como es tu caso, el campo no se reinicia para comenzar de nuevo con el valor 1. No se cómo funciona en Paradox, tendrías que mirar si te permite cambiar el valor del campo manualmente para que empiece otra vez desde uno, o bien borrar el campo y volverlo a crear si no te deja la otra opción, creo que tendrás que usar esto último.
Otra opción sería que te creases tu un campo que no fuese autoincremental implícitamente y obtuvieses tú mediante código el siguiente valor de la secuencia, si es que quieres tener siempre todos los valores correlativos.
Espero que te haya servido de ayuda.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:solo para expertos en Bd´s !!!!!

Publicado por Victor (85 intervenciones) el 11/03/2002 12:46:25
Podes usar un query que retorne el valor maximo del campo que sea autoincremental, o sea, haces un "select max(campo) from tabla" cada vez que quieras introducir un registro, le sumas 1 y al registro que le insertas le asignas el valor sumado.
Dependiendo de los datos y el diseño, puede ser que tu registro de la tabla no se eliminen, un ejemplo son las facturas, normalmente las facturas se marcan como anuladas y no se elimina el registro del cabezal. Si es un caso similar a esta, podes usar la función recordcount, esta te devuelve la cantidad de registros que tiene la tabla, por ejemplo: si tu tabla se llama clientes, al ejecutar clientes.recordcount, te retorna la cantidad de registros en tipo de datos integer. Esto tb lo podes aprobechar.

Espero que te haya servido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:solo para expertos en Bd´s !!!!!

Publicado por Gerardo Ch. (2 intervenciones) el 15/03/2002 22:31:02
No hay forma de reiniciar la tabla en el campo de tipo autoincremento; para eso es, para autoincrementarse (automáticamente).

Alternativa:

CREAR una tabla "igualitita" y salvarla con el nombre de la original (te preguntará el dialogo del DBD ¿desea sobreescribir el archivo? ... SI).

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:solo para expertos en Bd´s !!!!!

Publicado por zack (83 intervenciones) el 18/07/2003 01:33:44
Aunque es un poco tarde jeje, si hay una solucion aunque un poco metodica ya que paradox no lo permite. Tienes que hacer lo siguiente:

1. en Tools vacia la tabla
2. Reestructura la tabla y cambiala el autonumerico a numerico
3. hazle un pack a la tabla
4. vuelve a reestructurarla y camvia el numerico a autonumerico
5. te preguntara que se perderan los datos y woala funciona.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar