Hola vic_ia !
Veo un problema en lo siguiente, por medio del identificador
MENSAJES.ID no puedes obtener el contenido del campo ID; recuerda que dentro de un procedimiento de Firebird solamente cuentas con la sentencia SELECT para obtener los datos contenidos en un campo.
Para corregir tu código te recomiendo lo siguiente:
Código SQL
[-]
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 = GEN_ID([Nombre_generador],0);
suspend;
end
Por otra parte si lo que deseas es obtener el valor del generador directamente desde Delphi te recomiendo que leas este hilo:
http://www.clubdelphi.com/foros/show...2152#post82152
Un saludo!