FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
secuencia en red
hola a todos como estan, espero k esten bien, les cuento que estoy haciendo un programa en el cual tengo una tabla sql con un campo llamado numsec de tipo int el cual es una clave primaria, lo que quiero hacer es que cada vez que el usuario le de al boton grabar el campo numsec se incremente en 1 (emular a un campo identiy), bien lo que he hecho es que en un componente tquery he usado la clausula select max(numsec) + 1 al momento del usuario darle al boton grabar, esto funciona correctamente en una maquina que este trabajndo local, el problema es que la aplicacion se ejecutara en red con varios usuarios trabajando simultaneamente sobre la misma asi que creo que me dara un error de violacion de clave primaria, espero k me haya dado a entender, y por favor me puedan sugerir algo para solucionarlo, gracias de antemano...
|
#2
|
|||
|
|||
" en este momento nuestros operadores estan ocupados investigando telepaticamente que version de delphi esta usted usando, asi como cual es el motor de base datos con el que trabaja su aplicacion. Por favor no cuelgue, un ejecutivo lo atendera"
|
#3
|
||||
|
||||
Cita:
Debes indicar más información.. motor de base de datos... y versión de delphi... Salu2 PD: Esto hace una simulación del traspaso del llamado de FGarcia a mi...
__________________
BlueSteel |
#4
|
|||
|
|||
secuencia en red
hola chicos, gracias por responderme, es verdad se me paso indicar que estoy utilizando el motor de bd a sql server 2000 y la version de delphi 7.
|
#5
|
||||
|
||||
Cita:
pero cual es el problema que designes el campo como identidad, cuando eso el SQL 2000 lo hace.... Otra opción es que te crees un trigger, y al momento de guardar te genere el numero del numsec, asi te evitaras cualquier problema, por que el numero se asignará en el servidor y no en el cliente... tendrias que hacer un trigger en el evento before insert.. Espero que esto te sirva Salu2
__________________
BlueSteel |
#6
|
|||
|
|||
Cita:
k tal bluesteel, veras lo que sucede es que estoy trabajando desconectado, es decir no estoy usando componentes db y no estoy utilizando capos de un query para hacer un insert, por lo que esta descartado el uso del evento before insert, veras, estoy haciendo un mastro detalle y por eso es que no quiero hacer uso del campo identity ya que en ocaciones trae muchos problemas, |
#7
|
||||
|
||||
Cita:
Cita:
De todos modos, puedes utilizar triggers para que calculen el MAX(ID) y lo agreguen automáticamente. |
#8
|
|||
|
|||
re
hola que tal, y como crearia dicho triguer ?, seria para for insert, for delete o for update o todas
|
#9
|
||||
|
||||
Debería ser FOR INSERT, pues es dónde se crea.
Cuando hagas una modificación, deberás verificar que no cambie. Cuando borres, deberías tener un trigger FOR DELETE en la cabecera que borre el detalle, para que no queden líneas huérfanas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Secuencia de imagenes | mancurnino | Varios | 8 | 20-05-2008 18:15:13 |
Orden de secuencia incorrecto | AngelV | JAVA | 4 | 13-09-2007 15:06:02 |
Secuencia de pantallas | jandres | Varios | 1 | 11-09-2006 18:22:55 |
secuencia | rex | MS SQL Server | 1 | 20-04-2006 05:49:43 |
Iniciar nº secuencia el primer día del año | Jose Manuel | Oracle | 0 | 13-08-2005 21:36:45 |
|