Stránka 1 z 1

Ošetření součtem před zápisem do SQL DB v ASP.NET

Napsal: 28 úno 2012 14:58
od karel.laska
Zdravím vespolek,

Potřebuji ošetřit formulář tak, aby uživatelé, kteří se zapisují dali v součtu 100%. (jedná se o rozdělení celku, například Pepa 25%, Franta 75%). Jedná se o zápis v danou chvíli oběma, tzn. že jsou u PC oba a domluví se na rozložení procent.
Vzhledem k tomu, že uživatelé nebudou vždy 2, nejde toto ošetřit předem daným počtem buněk.
Proto jsem chtěl použít postupné přidávání záznamů do DB, s tím, že budu před zápisem kontrolovat součet.
Tzn. políčko jméno, políčko procenta, tlačítko zapiš, pod tím GridWiev se seznamem zapsaných lidí.
Nevím však jak ošetřit právě těch 100%. Napadly mě tyto možnosti:
1.Zkoušel jsem to pomocí Stored Procedure, to se mi však nedaří.
2.Nevím zda a jak mohu pomocí kódu, vyčíst z GridWiev jednotlivé záznamy a následně to ošetřit před zápisem.

Přikládám proceduru kterou jsem vytvořil, prosím, mohl by někdo kouknout co s ní?
Nekontroluje mi horní hranici :-(

ALTER PROCEDURE dbo.StoredProcedureIncludeGroup

@Percent tinyint,
@Group varchar(15),
@SUMPercent tinyint,
@IDNumber varchar(15)


AS
set @SUMPercent = (SELECT SUM(Percent) AS SUMPercent FROM TableGroup WHERE (Group = @Group))
IF ( @SUMPercent < 100) BEGIN
IF ( @SUMPercent + @Percent <= 100) BEGIN
INSERT INTO TableGroup(Group, IDNumber, Percent) VALUES (@Group, @IDNumber, @Percent)
END ELSE BEGIN
INSERT INTO TableGroup(Group, IDNumber, Percent) VALUES (@Group, @IDNumber, 100-@SUMPercent)

END
END

RETURN

S díky Karel

Re: Ošetření součtem před zápisem do SQL DB v ASP.NET  Vyřešeno

Napsal: 29 úno 2012 13:30
od karel.laska
Zdravím všechny, kteří to budou číst :-)
Odpovídám sám sobě, neb jsem to konečně rozlouskl a třeba bude někdo kdo to využije.

Celý problém byl nejen v tom že jsem si ze začátku nehlídal NULL, ale také v podmínkách.
Přikládám kód a prosím o označuji jako uzavřené téma :-)

ALTER PROCEDURE dbo.StoredProcedureIncludeGroup

@Percent tinyint,
@Groups varchar(15),
@SUMPercent tinyint,
@IDNumber varchar(15)



AS
set @SUMPercent = (SELECT SUM(Percent) AS SUMPercent FROM TableGroups WHERE (Groups = @Groups))

IF @SUMPercent is null or @SUMPercent < 100 BEGIN
IF (@SUMPercent + @Percent) >100 BEGIN

INSERT INTO TableGroups(Groups, IDNumber, Percent) VALUES (@Groups, @IDNumber, 100 - @SUMPercent )
END ELSE BEGIN
INSERT INTO TableGroups(Groups, IDNumber, Percent) VALUES (@Groups, @IDNumber, @Percent )
END
END


RETURN


S pozdravem Karel