Welcome to Sign in | Help

Re: functie sql care verifica IBAN-ul

  •  07-29-2008, 4:29 PM

    Re: functie sql care verifica IBAN-ul

    am gasit o functie care face lucrul asta...verifica IBAN....si e prea frumoasa ca sa nu v-o arat si voua....(nici nu se compara cu Struto-Camila pe care o facusem eu :) )

     

    create FUNCTION CumVretiVoiSaSeNumeasca
     (@IBAN varchar(50))
    RETURNS int
    AS
    BEGIN
     if len(@IBAN)!=24
      return 0

     if substring(@IBAN,1,2)!='RO'

     declare @NR  varchar(100)
     select @NR=substring(@IBAN,5,20)+substring(@IBAN,1,4)

     declare @i  bigint
     declare @char varchar(1)
     set @i=1
     while @i<len(@NR)
     begin
      select @char=substring(@NR,@i,1)
      if @char in ('0','1','2','3','4','5','6','7','8','9')
      begin
       set @i=@i+1
       continue
      end

      set @NR=replace(@NR,@char,convert(varchar,ascii(@char)-55))
      set @i=@i+1
     end

     declare @aux varchar(50)
     declare @aux1 varchar(2)
     select @aux=substring(@NR,1,2)
     if convert(bigint,@aux)<97
      set @aux=substring(@NR,1,3)
     if convert(bigint,@aux)<97
      set @aux=substring(@NR,1,4)

     while convert(bigint,@aux)>=97
     begin
      set @aux1=convert(varchar,convert(bigint,@aux)%97)
      select @NR=@aux1+substring(@NR,len(@aux)+1,100)
      select @aux=substring(@NR,1,2)
      if @aux not in ('98','99') and len(@NR)<=2
       return convert(int,@NR)%97

      while convert(bigint,@aux)<97
       set @aux=substring(@NR,1,len(@aux)+1)
     end
     return convert(int,@NR)
    END

     

    alex.

View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems