¿Cómo busco el último código guardado?
Publicado por Andrea (325 intervenciones) el 27/02/2008 22:04:09
HOla a todos.
Retomando un post anterior (que ya se hizo muy largo) rehago la pregunta y les consulto QUÉ SOLUCIÓN TOMARÍAN USTEDES.
- En un programa que hice para un supermercado amigo, tienen 3 cajas, cada una identificado con un nº de punto de venta.
- Todos los movimientos de facturación (cada factura) se guarda como un registro en una única tabla (FACTU.DBF).
- Esta tabla tiene una clave PRINCIPAL compuesta, formada por 3 campos: TIPO DE FACTURA (A o B) + PUNTO DE VENTA (0001 a 0003) + Nº DE FACTURA (por ejemplo, 00000123)
- Yo guardo el próximo número de factura en una tabla con 3 registros: cada uno corresponde a una caja distinta.
- Tal como les explicaba anteriormente, de tanto en tanto me llaman porque aparece un error de duplicación de índices que no puedo controlar con la rutina de errores (es decir, aparece el cartel pero no sé cómo resolver el problema en el momento)
- Según la sugerencia de algunos de ustedes, me conviene buscar el último número en vez de guardarlo y sumarle uno.
Ahí va mi consulta: ¿CUÁL DE ESTAS ALTERNATIVAS LES PARECE MEJOR? (sobre la tabla FACTU.DBF)
1) Utilizar un SET FILTER TO punto_de_venta (para filtrar lo que corresponde a cada caja) y luego hacer un GO BOTTOM para sacar el último
2) Utilizar un SELECT de SQL para seleccionar los registros de cada cajar y luego hacer un GO BOTTOM
3) Utilizar un SELECT de SQL y utlizar la función MAX() para obtener el valor máximo
4) Alguna alternativa distinta a estas propuestas.
Yo probé la número 3) y FUNCIONA BIEN, pero como la tabla FACTU.DBF tiene MUCHOS registros, esta operación TARDA 3 o 4 segundos, que son eternos cuando hay mucha gente en las cajas.
Desde ya les agradezco cualquier ayuda.
Andrea
Retomando un post anterior (que ya se hizo muy largo) rehago la pregunta y les consulto QUÉ SOLUCIÓN TOMARÍAN USTEDES.
- En un programa que hice para un supermercado amigo, tienen 3 cajas, cada una identificado con un nº de punto de venta.
- Todos los movimientos de facturación (cada factura) se guarda como un registro en una única tabla (FACTU.DBF).
- Esta tabla tiene una clave PRINCIPAL compuesta, formada por 3 campos: TIPO DE FACTURA (A o B) + PUNTO DE VENTA (0001 a 0003) + Nº DE FACTURA (por ejemplo, 00000123)
- Yo guardo el próximo número de factura en una tabla con 3 registros: cada uno corresponde a una caja distinta.
- Tal como les explicaba anteriormente, de tanto en tanto me llaman porque aparece un error de duplicación de índices que no puedo controlar con la rutina de errores (es decir, aparece el cartel pero no sé cómo resolver el problema en el momento)
- Según la sugerencia de algunos de ustedes, me conviene buscar el último número en vez de guardarlo y sumarle uno.
Ahí va mi consulta: ¿CUÁL DE ESTAS ALTERNATIVAS LES PARECE MEJOR? (sobre la tabla FACTU.DBF)
1) Utilizar un SET FILTER TO punto_de_venta (para filtrar lo que corresponde a cada caja) y luego hacer un GO BOTTOM para sacar el último
2) Utilizar un SELECT de SQL para seleccionar los registros de cada cajar y luego hacer un GO BOTTOM
3) Utilizar un SELECT de SQL y utlizar la función MAX() para obtener el valor máximo
4) Alguna alternativa distinta a estas propuestas.
Yo probé la número 3) y FUNCIONA BIEN, pero como la tabla FACTU.DBF tiene MUCHOS registros, esta operación TARDA 3 o 4 segundos, que son eternos cuando hay mucha gente en las cajas.
Desde ya les agradezco cualquier ayuda.
Andrea
Valora esta pregunta


0