![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Clave primaria a 0
Hola, estoy desarrollando con tablas Access y ADO, un sistema donde necesito limpiar una base y reiniciar la primary key. No hayo la forma de hacerlo. Intente copiar una tabla nueva con la misma estructura, pero me daba error. Agradezco quien pueda darme una mano, ya sea, copiando la nueva tabla o borrar todos los ítems y reiniciar la primary key. Muchas gracias.
|
#2
|
||||
|
||||
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Casimiro gracias por contestar,
Perdón no me da error sino simplemente no hace la operación de copiado de estructura. Te transcribo lo que hago :
|
#4
|
||||
|
||||
Esa sentencia inserta en la tabla pedidos los registros que existan en la tabla original.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Creí que con ello superponía la estructura también no solo los registros. Entonces como hago para copiar la estructura de Original sobre Pedidos?
|
#6
|
||||
|
||||
No entiendo para qué quieres hacer eso. ¿Tú quieres hacer?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
Sobre la tabla Pedidos se "escriben" mercadería solicitada. Una vez impresa la nota se borran todos los artículos y se inicia nuevamente. La clave primaria, debería iniciarse para que no crezca hasta el infinito.
|
#8
|
||||
|
||||
Para borrar todos los registros de una tabla:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
|||
|
|||
Eso lo hice, pero no reinicia la clave primaria, sigue numerando desde la ultima entrada hecha.
|
#10
|
||||
|
||||
¿Y cómo lo haces?
Explica con detalle todo, puedes escribir todo lo que quieras, no hay límite, es que estamos con un diálogo casi monólogo/monosílabo ![]() .
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#11
|
||||
|
||||
No deberias nunca reiniciar la clave primaria
Cual es el problema que crezca "hasta el infinito"? |
#12
|
|||
|
|||
Perdón, tratare de ser mas claro.
Tengo una tabla llamada Pedidos en ella se cargan todos los ítems que va pidiendo un cliente, una vez finalizada la carga se imprime el pedido y se guarda en otra tabla lo cargado. Debo reiniciar la tabla 'Pedidos' para una nueva carga. Para ello yo hacia lo mismo que vos mencionaste:
Pero al iniciar una nueva carga, veo que el campo auntoincrementable y clave primaria 'Renglon' de la tabla pedidos continua con el siguiente numero dejado por la anterior carga en vez de iniciar desde 1. Acabo de probar lo siguiente:
Intentando copiar la estructura de ORIGINAL (Una tabla igual a Pedidos, pero vacia) y me da el siguiente error cuando lo ejecuto sin el debugger: "El motor de bases de datos Microsoft Jet no pudo encontrar el objeto 'PEDIDOS' ....." Ahora cuando lo ejecuto con el debugger, no aparece el error, hace todo perfecto, así que no sé en que línea se produce dicho error. |
#13
|
||||
|
||||
Es que basicamente estas usando una tabla para guardar 1 pedido con sus n linea de detalles y luego borras todo. Para que usar una tabla access para eso? Directamente podes mantener todo en memoria.
Si queres optar por la via de DataSet podes usar un ClientDataSet Vas cargando todas las lineas del pedido en el ClientDataSet, una vez que se termina, lo cargas en "la otra tabla" y lo imprimes Yo no borraria la informacion que se va guardando, agregaria un campo de estado en los pedidos (pendiente, borrado, facturado, etc) |
#14
|
|||
|
|||
Hola AgustinOrtu,
Te comento que no lo hago en memoria, pues al cerrar el programa se perdería la información. Dataset nunca lo use y después de estar usando el arcaico BDE, opte por interiorizarme con ADO y ahora agregue Access, después de utilizar tablas .dbf. Así que soy muy novato. Cual seria la ventaja de usar clientdataset por sobre ADO? |
#15
|
||||
|
||||
ClientDataSet es una tabla en memoria
No digo que mantengas todo el sistema entero en memoria; pero el pedido actual que estas cargando si Vas cargando todo en una tabla de memoria (o llamala temporal si queres) que podria ser un TClientDataSet Cuando se confirma el pedido, tomas todo lo que tiene el ClientDataSet (todos los "renglones") y lo vuelcas en la tabla access Luego eliminas todo lo del ClientDataSet y podes volver a cargar otro pedido Lo que digo que esta muy raro en tu programa es que estas usando una tabla para guardar basicamente una sola entidad. Estas cargando un pedido y luego lo borras y lo pasas a otra tabla. Por que? |
#16
|
|||
|
|||
Hola, creo que debes aclararnos que es lo que necesitas, para la generacion de pedidos puedes o no usar una tabla temporal (sea en memoria o no), pero en si cual es tu problema, y no me refiero a el reset de la clave primaria, si no al por que quieres reiniciarla? tal ves podamos darte otra idea de hacer lo que requieres.
El autoincrement no se va a reiniciar a menos que destruyas la tabla y la vuelvas a crear, podria ser una secuencia pero estas no existen en access. Si requiere tener un master-detail Cabecera producto 1 producto 2 No es necesario que pongas el autoincrement, puedes contar los productos y poner el contador, pero si es recomendable que cambies a una tabla temporal. Saludos. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
query y obtener clave primaria | monti | SQL | 6 | 13-12-2005 21:21:36 |
Ayuda Con Clave Primaria | pablo2244 | MySQL | 4 | 30-05-2005 21:49:01 |
cambiar la clave primaria con SQL | User_Baja_2 | SQL | 8 | 18-06-2004 08:41:31 |
Cambiar clave primaria | pinoxito | Firebird e Interbase | 7 | 13-01-2004 21:51:26 |
cambiar una clave primaria | User_Baja_2 | SQL | 3 | 06-10-2003 18:03:38 |
![]() |
|