Darle un Refresh a la Tabla
Que tal..!!
tengo este problema actualmente.... La Base de Datos esta hecho en MySQL... y programando en Borland Delphi 2006 el proyecto realizado se va a manejar en 7 sucursales... la cual se esta controlando por sucursal las ventas realizadas... ahora bien.. en cada sucursal se cuentan con 3 o mas vendedores... por lo que se tiene que tener bien controlados los pk (primary keys) para que no truene el sistema mientras lo estan manejando... por lo que yo tengo en el before post de mi tabla la siguiente sintaxis:
esa es la sintaxis de mi codigo.... en resumen... entra a un ciclo infinito para buscar donde acomodar el pk buscando si ya existe en la tabla cat_cotizacion y si ya existe este incrementa en uno para volver a hacer la busqueda. Ahora bien con ejemplos reales... se tienen dos computadoras arrancando el sistema... entonces ambas van a tener nCotiza en 5 (que es el MaxID - Maximo mas uno). la primera maquina ya guardo.. entrando al ciclo y permitiendolo guardar con nCotiza en 5, ahora bien... lo ideal es que en la maquina dos al intentar guardar entra al ciclo.. y al encontrar que nCotiza = 5 ya existe este tiene que incrementarse en uno... osea nCotiza = 6 para asi poder guardar sus datos.... esa es la idea... :rolleyes: pero me resulta que al hacer la busqueda en la seguna mquina... me dice que no existe aun... y me intenta guardar en nCotiza = 5 pero al darle el Post, truena diciendome que se duplican los primary key..!! :mad: que me recomiendan hacer???? :confused: |
Por que no creas un stored que se encargue haga lo siguiente:
Inicia transacción Genera el Siguiente Id Inserta el registro Commitea la transacción y agregas un handler para si ocurre un error eches para atras la transacción y no te bloquee la tabla :P. |
Usar o no usar transacciones..!!!
Te agradezco mucho tu posteo..!!
Ya pude resolver el problema... pero al hacerlo me meti en otro problema... resulta que el problema era el manejo de las transacciones... al inicio de la ventana de doy un BeginTrans y al dar el boton de guardar... le doy el CommitTrans... ahh pues le quite esas lines.. y el codigo que escribi anteriormente ya funciona a la perfeccion..!! ahora bien.. me meti en otro problema... que desventajas tengo al no usar transacciones...!!! ???? :confused: |
La franja horaria es GMT +2. Ahora son las 22:30:38. |
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