Hola,
A mi entender la mejor solución para los autoincrementales es realizarlo directamente desde sentencias SQL, de esta forma no nos limitamos unicamente a generadores, autoincrementadores o demás propios de cada motor.
La idea sería:
Código SQL
[-]
SELECT (MAX(CODIGO) + 1) FROM TABLA;
Obviamente depende del diseño de tu aplicación, pero como dije esa es mi opinión.
Saludos!