Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Tablas: Encabezado y Detalle

Hola gente del foro, tengo una situación.

utilizo Firebird 2.0 y componentes Interbase de Delphi 2006.

Tengo 2 tablas, compras y detcompras... en don de almacenos ordenes de compra.

La aplicación se conectan varios usuarioa al mismo tiempo, por lo que para evitar problemas de correlativos en la tabla Compras, utilizo un trigger y un generador para dar el correlativo (que representa) a la orden de compra.

Hasta aqui todo bien, es problema es al almacenar el detalle de la orden de compra en la tabka detcomrpas... ya que para esto antes de la inserción, hago una consulta preguntando por el ultimo numero de orden de compra... esto genera problemas que ya en algunas oportunidades se me cruzan ordenes.

No se como resolver esto... investigando averigue por procedimientos almacenados, pero no se si es lo que realmente mas me conviene, ni tampoco se nada de ellos.

Espero me puedan guiar a la mejor solucion de esto.

Saludos
Responder Con Cita
  #2  
Antiguo 22-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Yo creo que es mejor hacer las ordenes en tablas temporales con sus respectivos detalles, una vez que esten hechas se guardan.
Para guardar si se vierifica el ultimo numero, pero esto sera en segundos, por lo que sera muy dificil que dos lo hagan al mismo tiempo.
Otra forma es a la hora de empezar la orden se genere un numero inicial y que se verifique en ese numero para la siguiente orden.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 22-06-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Detallo un poco mas como lo hago hasta ahora, en 2 tablas temporales, guardo la orden y su detalle. En el Onclick de un Tbutton verifico que este todo een orden y luego almacenos en la tabla compras lo que tengo en la tabla temporal Temp_compras. Acto seguido, en el mismo procedimiento (onclick), pregunto el la ultima orden guardada (trigger y generador), y registro en la tabla detcompras, lo que tengo en la tabla temp_detcompras.

No es habitual que se me crucen ordenes de compra, pero si me ha ocurrido en algunas oportunidades.

Cual es la forma "elegante", correcta de hacer esto?
Esta bien hacerlo con trigger y generador?

Saludos
Responder Con Cita
  #4  
Antiguo 22-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Un generador te garantiza que siempre será un número distinto, pero puede crearse saltos. Ejemplo:
Puesto 1, nueva factura, el generador indica que toca el núm. 10.
Puesto 2, nueva factura, el generador indica que toca el núm. 11.
Puesto 1, cancela la creación de la factura
Puesto 1, nueva factura, el generador indica que toca el núm. 12.
¿Y el 10?
Responder Con Cita
  #5  
Antiguo 22-06-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
casimiro, entiendo tu explicación, lo cual me ocurre y no me genera problemas, porque simplemente esas ordenes se conciderar nulas...

mi consulta está enfocada a la tabla que contiene el detalle de (todo lo que hemos discutido está enfocado a la tabla madre, principal, encabezado, etc.)

Lo qu necesito es poder asegurarme que las tablas estarán correctamente relacionadas por medio del campo NOC: Integer, en cual en la tabla compras es autoincremental y en la talba detcompras no puede serlo, ya que una orden puede tener mas de un detalle y en este caso existiran mas de un registro con el mismo valor de NOC. En la tabla detcompras existe otro campo NCORR: Integer, que es el que me da la posición del item dentro de la orden de compra... la clave primaria de esta tabla es compuesta por NOC y NCORR.

Entonces, cual es la mejor forma para desarrollar esto?
Responder Con Cita
  #6  
Antiguo 22-06-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
por favor, alguna idea de como desarrollar esto....

Como realizará esto cualquier sistema de gestión, que realize ordenes de compra, o cualquier documento que la información se almacena en 2 tablas.

Espero me puedan ayudar.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Reporte Maestro/Detalle/Detalle de 4 Tablas jovehe Impresión 2 23-03-2005 01:25:02
Total en Encabezado Detalle pache Conexión con bases de datos 1 12-10-2004 18:15:24
Tablas Maestro-Detalle silviodp Conexión con bases de datos 13 07-06-2004 22:55:22
tablas maestro/detalle vetustas Conexión con bases de datos 7 09-11-2003 22:56:21
insertar en tablas maestro detalle mnorza Conexión con bases de datos 6 25-10-2003 02:28:19


La franja horaria es GMT +2. Ahora son las 11:36:39.


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
Copyright 1996-2007 Club Delphi