23 de mayo de 2001

OBTENER UN CAMPO AUTOINCREMENTAL

Supongo que muchos programadores utilizaran en sus bases de datos campos Autoincrementales, y más de uno habrá tenido problemas a la hora de saber que es lo que acaba de insertar.

Buenas noticias:
En la mayoría de las DBS existen unas variables globales que guardan el ultimo valor añadido a una columna Autoincremental.

Malas noticias:
Las variables de los autoincrementales no son las mismas para diferentes DBS.
El proceso en el que intervenga un campo autoincremental es un poco manual

Tres pasos:
Establecer las transacciones a MANUALES
= SQLSetProp(THIS.nConn, "Transactions", 2)
Insertamos la fila.
VL_C_SQL = “INSERT NIVEL ( DESCR ) VALUES ( “ + THISFORM.DESCR.VALUE + “ )”
IF SQLExec(THIS.nConn, VL_C_SQL) 
   THIS.GetLastError
   = SQLRollBack(THIS.nConn)
   Return -1
ENDIF
Obtenemos el autoincremental
VL_C_SQL = “SELECT @@IDENTITY””
IF SQLExec(THIS.nConn, VL_C_SQL, “CX_SERIAL”)
   THIS.GetLastError
   =SQLRollBack(THIS.nConn)
   Return –1
ENDIF

THIS.Serial = CX_SERIAL.exp

Este código esta sacado de su contexto habitual, espero que os aclare las dudas.

Pablo Roca

No hay comentarios. :

Publicar un comentario