Provera ispravnosti JMBG-a na SQL server strani :
CREATE FUNCTION fnCheckJMBG
(
@JMBG nvarchar(20)
)
RETURNS bit
AS
BEGIN
DECLARE @sum int
DECLARE @index int
DECLARE @numbers TABLE(ID int, Value int);
SET @index=1
WHILE @index <= 13
BEGIN
INSERT INTO @numbers (ID, Value)
VALUES(@index, CAST(SUBSTRING (@JMBG, @index, 1) AS int))
SET @index = @index + 1
END
SET @sum = (SELECT Value FROM @numbers WHERE ID=13)+
(SELECT Value FROM @numbers WHERE ID=1)*7 +
(SELECT Value FROM @numbers WHERE ID=2)*6 +
(SELECT Value FROM @numbers WHERE ID=3)*5 +
(SELECT Value FROM @numbers WHERE ID=4)*4 +
(SELECT Value FROM @numbers WHERE ID=5)*3 +
(SELECT Value FROM @numbers WHERE ID=6)*2 +
(SELECT Value FROM @numbers WHERE ID=7)*7 +
(SELECT Value FROM @numbers WHERE ID=8)*6 +
(SELECT Value FROM @numbers WHERE ID=9)*5 +
(SELECT Value FROM @numbers WHERE ID=10)*4 +
(SELECT Value FROM @numbers WHERE ID=11)*3 +
(SELECT Value FROM @numbers WHERE ID=12)*2
RETURN CASE WHEN (@sum % 11)= 0 THEN 1 ELSE 0 END
END
GO
CREATE FUNCTION fnCheckJMBG
(
@JMBG nvarchar(20)
)
RETURNS bit
AS
BEGIN
DECLARE @sum int
DECLARE @index int
DECLARE @numbers TABLE(ID int, Value int);
SET @index=1
WHILE @index <= 13
BEGIN
INSERT INTO @numbers (ID, Value)
VALUES(@index, CAST(SUBSTRING (@JMBG, @index, 1) AS int))
SET @index = @index + 1
END
SET @sum = (SELECT Value FROM @numbers WHERE ID=13)+
(SELECT Value FROM @numbers WHERE ID=1)*7 +
(SELECT Value FROM @numbers WHERE ID=2)*6 +
(SELECT Value FROM @numbers WHERE ID=3)*5 +
(SELECT Value FROM @numbers WHERE ID=4)*4 +
(SELECT Value FROM @numbers WHERE ID=5)*3 +
(SELECT Value FROM @numbers WHERE ID=6)*2 +
(SELECT Value FROM @numbers WHERE ID=7)*7 +
(SELECT Value FROM @numbers WHERE ID=8)*6 +
(SELECT Value FROM @numbers WHERE ID=9)*5 +
(SELECT Value FROM @numbers WHERE ID=10)*4 +
(SELECT Value FROM @numbers WHERE ID=11)*3 +
(SELECT Value FROM @numbers WHERE ID=12)*2
RETURN CASE WHEN (@sum % 11)= 0 THEN 1 ELSE 0 END
END
GO