Re: Validar parametros entrada

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Mario Gonzalez <gonzalemario(at)gmail(dot)com>
Cc: Postgresql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Validar parametros entrada
Date: 2005-12-21 16:09:30
Message-ID: 20051221160930.GD11275@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Mario Gonzalez escribió:
> Hola, estoy haciendo una funcion que basicamente inserta un valor y
> devuele el numero de secuencia, quiero validar el parametro de
> entrada, que no este vacio. Lo hice de una manera que no me gusta
> mucho, no es muy elegante ni optima segun yo.

Estas mezclando dos cosas: una es la generacion del numero de la
secuencia. Esto puedes estar seguro que nunca entregara un duplicado.

El otro problema es verificar que tal parametro no sea vacio. La mejor
manera de hacer esto es con un par de restricciones CHECK y NOT NULL.

create table departamentos (
id_departamento serial unique not null,
nombre_departamento text not null check (nombre_departamento <> '')
);

Luego en tu aplicacion tienes que hacer

insert into departamentos (nombre_departamento) values ('foo');

Si entregas un nombre vacio, la sentencia arrojara un error que puedes
capturar. De lo contrario, puedes obtener el numero del departamento
para usarlo como te plazca haciendo un SELECT currval('...').

El resto es codigo innecesario ...

Observa que te pueden pasar un nombre de departamento compuesto de
espacios en blanco, o un par de \n, etc. Si quieres protegerte contra
esto, usa una restriccion CHECK mas apropiada (con una regex, etc).

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jose Antonio kerjo 2005-12-21 16:19:01 Re: Migracion de access a postgres
Previous Message Mario Gonzalez 2005-12-21 16:04:23 Re: Validar parametros entrada