Ver Mensaje Individual
  #1  
Antiguo 09-05-2005
Avatar de vic_ia
vic_ia vic_ia is offline
Miembro
 
Registrado: ene 2004
Posts: 238
Reputación: 21
vic_ia Va por buen camino
Como obtener valor de Campo Autoincremento...

hola...

espero me puedan ayudar con esto...

tengo una tabla de en la que almaceno "mensajes", la clave principal es un campo Autoincremento (los demas campos son para guardar, de quien vino, cuando se recibio, etc), para esto me cree en generador y el correspondiente trigger (before insert), al hacer un insert con los valores de los demas campos se realiza el proceso de manera correcta; el detalle es que necesito obtener el valor del campo Autoincremento que le fue asignado a tal registro; por lo que he ledio lo adecuado seria colocar la sentencia de Insert en un procedimiento, llamar a este procedimiento con los parametros adecuados, y obtener en un parametro de retorno el valor del campo Autoincremento pero ahi es donde no se como obtener ese valor; el procedimiento es como sigue..

Código:
CREATE PROCEDURE NEW_PROCEDURE (PMENSAJE VARCHAR(100) CHARACTER SET ISO8859_1)
RETURNS (NUEVO_ID INTEGER)
AS
begin
  INSERT INTO MENSAJES(MENSAJE) VALUES (:PMENSAJE);
  NUEVO_ID = MENSAJES.id;
  suspend;
end

y me da el siguiente Error :

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
At line 8, column 23.
la tabla si tiene un campo ID que de hecho es el campo Autoincremento, he cambiado MENSAJES.id por GEN_MENSAJES_ID pero igual me dice que la columna no la conoce; espero alguien me pueda orientar...

saludos....

PD. Utilizo Delphi 6 y Firebird 1.5 y el store procedure lo esto creando con IBExpert.
Responder Con Cita