Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > PostgreSQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2010
Avatar de elistraus
elistraus elistraus is offline
Miembro
 
Registrado: jun 2008
Posts: 32
Poder: 0
elistraus Va por buen camino
validar rut chileno

hola llevo varios dias tratando de poder solucionar el validado del rut encontre un codigo que al hacer una consulta esta bueno la cosa que no se como implementarlo atravez de un ingreso por parate del usuario este es la funcion
Código Delphi [-]
CREATE OR REPLACE FUNCTION digito_verificador(character varying)
  RETURNS character AS
$BODY$
DECLARE
    rut ALIAS FOR $1;
    rut_cero varchar(8);
    valor int;
BEGIN
    valor := 0;
    rut_cero := lpad(rut,8,'0');

    valor := valor + (substring(rut_cero,8,1)::int8)*2;
    valor := valor + (substring(rut_cero,7,1)::int8)*3;
    valor := valor + (substring(rut_cero,6,1)::int8)*4;
    valor := valor + (substring(rut_cero,5,1)::int8)*5;
    valor := valor + (substring(rut_cero,4,1)::int8)*6;
    valor := valor + (substring(rut_cero,3,1)::int8)*7;
    valor := valor + (substring(rut_cero,2,1)::int8)*2;
    valor := valor + (substring(rut_cero,1,1)::int8)*3;

    valor := valor % 11;

    IF valor =1 THEN
        RETURN 'K';
    END IF;
    IF valor =0 THEN
        RETURN '0';
    END IF;
    IF valor>1 AND valor<11 THEN
        RETURN (11-valor)::char;
    END IF;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION digito_verificador(character varying) OWNER TO postgres;



CREATE OR REPLACE FUNCTION valida_rut(character varying)
  RETURNS boolean AS
$BODY$
DECLARE
    rutfull ALIAS FOR $1;
    rutfull_cero varchar(9);
    rut varchar(8);
    dv char;
BEGIN
    IF rutfull IS NULL THEN
        RETURN TRUE;
    END IF;

    rutfull_cero := lpad(rutfull,9,'0');
    rut:= substr(rutfull_cero,0,9);
    dv := substr(rutfull_cero,9,1);

    IF digito_verificador(rut)=upper(dv) THEN
        RETURN TRUE;
    ELSE
        RETURN FALSE;
    END IF;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION valida_rut(character varying) OWNER TO postgres;


y la trato de llamar de esta manera

CREATE OR REPLACE FUNCTION "validacionRut"()
  RETURNS trigger AS
$BODY$ 
declare validaRut varchar(9);
BEGIN 
    select rut from persona into validaRut;
    if (valida_rut(validaRut) = true) then
    RETURN NEW;
    else
    raise exception 'rut invalido';
    end if;
 RETURN NEW; 
END;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION "validacionRut"() OWNER TO postgres;

pero no tengo resultados

al hacer una consulta

select valida_rut('151920314')
hace lo que tiene que hacer pero el problema es hacerlo llamar cuando el usuario ingrese

saludos

Última edición por marcoszorrilla fecha: 04-01-2011 a las 15:24:52.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
validar RFC.. tebre Varios 12 06-01-2009 18:48:55
Validar Elite237 OOP 1 28-07-2007 23:25:30
Validar Nif Colgueit OOP 12 10-05-2006 02:50:28
validar un RUT chileno con maskedit unreal4u Varios 5 28-04-2005 22:36:30
validar en qry alcides SQL 2 06-01-2004 18:11:19


La franja horaria es GMT +2. Ahora son las 21:18:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi