Ver Mensaje Individual
  #2  
Antiguo 19-12-2007
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Reputación: 22
gatosoft Va camino a la fama
Bueno, esta respuesta llega como un mes tarde, y supongo que Elvy ya habrá resuelto sus problemas... pero escribo a manera simplemente informativa:

Una secuencia en PostgreSQL se define de la siguiente forma:

1. Creas un objeto tipo sequence
2. Creas una función que retorna un tipo de dato trigger
3. Creas un trigger (before Insert) sobre la tabla en cuestión, que llame a esta función.

Aquí va un ejemplo:

1. Creas un objeto tipo sequence

Código:
CREATE SEQUENCE NombreSequencia
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 14
  CACHE 1;

Bueno la sequencia puedes crearla solo con

Código:
CREATE SEQUENCE NombreSequencia;
Los demás parámetros son opcionales y los encuentras en la ayuda.

2. Creas una función que retorna un tipo de dato trigger

Código:
CREATE OR REPLACE FUNCTION NombreFuncion()
  RETURNS "trigger" AS
$BODY$
    BEGIN
    New.NombreCampoSequencia:=nextval('NombreSequencia');
    Return NEW;
    END;
 $BODY$
  LANGUAGE 'plpgsql' VOLATILE;
3. Creas un trigger (before Insert) sobre la tabla en cuestión, que llame a esta función.

Código:
CREATE TRIGGER NombreTrigger
  BEFORE INSERT
  ON NombreTabla
  FOR EACH ROW
  EXECUTE PROCEDURE NombreFuncion();

Toda la documentación la encuentras en la ayuda de PostgreSQL.


Por otro lado, para Trabajar Delphi y PostgreSQL, te recomiendo los componentes Zeos.


Saludos,
Responder Con Cita