Welcome to Sign in | Help

Re: functie sql care verifica IBAN-ul

  •  07-26-2008, 12:36 AM

    Re: functie sql care verifica IBAN-ul

    @Alex: nu te supăra dar am impresia că eşti masochist.
    Transformarea caracterelor în coduri se poate realiza folosind o funcţia (de exemplu):
    CREATE FUNCTION Caracter2Cod( @c CHAR(1) )
    RETURNS TINYINT
    AS
    BEGIN
      DECLARE @t TABLE (Caracter CHAR(1), Cod TINYINT)
      INSERT INTO @t VALUES ('A',10)
      INSERT INTO @t VALUES ('B',11)
      INSERT INTO @t VALUES ('C',12)
    ...
    ...
    ...
      RETURN (SELECT Cod FROM @t WHERE Caracter = @c)
    END

    Apel:
    SELECT dbo.Caracter2Cod( 'B' )

    Poţi simplifica implementarea funcţiei Caracter2Cod plecând de la codul ASCII al caracterului.

    Pentru a calcula modulo folosind numere mari ai expuse aici două metode (atenţie la teste).
    Exemplu: foloseşti formulele
    n * m mod p = ((n mod p) * (m mod p)) mod p

    n + m mod p = ((n mod p) + (m mod p)) mod p

    1010101011131007593840000272449 => 101010101113100*10^LEN('7593840000272449') + 7593840000272449
    1010101011131007593840000272449 => 101010101113100*10^16 + 7593840000272449
    adică
    ((101010101113100*10^16 mod 97) + (7593840000272449 mod 97)) mod 97
    Şi aici 101010101113100*10^16 mod 97 aplici n * m mod p = ((n mod p) * (m mod p)) mod p .

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