Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/04/2011, 10:54
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Reserva de autoincremento

Hola,

Cita:
Iniciado por leac3 Ver Mensaje
... estoy haciendo una webapp supersencilla a nivel de usuario, lo esoterico esta en saber antes de insertar la informacion, cual es el ID que va a tener dicho registro. ...
Aplicación Web ... allí está el problema realmente. No hay base de datos que tenga esa capacidad (ni Oracle) porque la transacción se va a realizar en dos pasos en un tiempo futuro indeterminado. Posiblemente lo puedes hacer con J2EE transaccional con Enterprise Java Beans o .NET con conexiones por sesión.

Que es lo que pasa ...

1. El usuario solicita la página.
2. El servidor devuelve la página. (En este momento se calcula el proximo ID).

3. El servidor y el usuario se desconectan completamente.

4. El usuario envía la página con los datos solicitados.
5. El servidor actúa consecuentemente.
6. El servidor devuelve la respuesta.

El 'gap' está en el paso 3, no se puede mantener una transacción abierta en ese lapso de tiempo sin recurrir a servidores que tengan persistencia de conexiones por sesión o algo parecido. Si recuperas el ID en el paso 5 solamente para que cliente lo apunte, entonces no necesitas nada solamente realiza el INSERT y recupera el last_insert_id.

Saludos,

ps:

El problema es muy complicado, pero con las descripciones que das no se te puede ayudar correctamente. Por ejemplo, no dijiste porqué motivo quieres saber el número con antelación, posiblemente hay otros métodos si te tomas la molestia de explicar detalladamente el problema.