Mens loop avgjør forskjellen mellom mengden av et produkt spurt og den tilsvarende kvantum på lager (Produkter tabell). Denne forskjellen er plassert i tilsvarende celle i den midlertidige bordet.Bassengområdet informUser The informUser Prosedyren har som inngangsparametre,numberOfRows ogshort. Du vet allerede bruken avnumberOfRows. short ble nevnt ovenfor. Den kan ha verdien null eller 1. Når det er null, betyr det at på den tiden antar vi at hver av mengden av produktene som kunden har forespurt, er tilgjengelig.
Denne fremgangsmåten vil sjekke om det er slik at for hver av de mengder etterspør. Hvis det ikke er det for en hvilken som helst ønsket antall, da verdien avshort vil bli endret til en (i denne fremgangsmåten). Den sammensatte setningen av prosedyren har to deler: erklæringen delen og en stund loop delen.
Koden for prosedyren er: #procedure å informere brukeren av noen mangel skilletegn //CREATE PROSEDYRE informUser (IN numberOfRows heltall, OUT kort heltall) BEGIN # sløyfe tellervariabelen erklærer jeg heltall STANDARD 1; #variable for kvantitet som ville forbli ERKLÆRER QtyRemainVar INTEGER; Mens jeg SELECT QtyRemain Fra SaleDetailsTemp WHERE ID = i INTO QtyRemainVar; IF QtyRemainVar SELECT Product, 'er en forkortelse av "AS Incident, (QtyRemain * -1) AS QuantityRemaining Fra SaleDetailsTemp WHERE ID = i; SET kort = 1; ELSE SET korte = 0; END IF; SET i = i + 1; SLUTT MENS; SLUTT; //Den subtraksjon av mengden av produktet i lager fra mengden ønskede har allerede blitt gjort (i den tidligere beskrevne fremgangsmåte), og resultatene anbringes i tilsvarende celler i den midlertidige tabellen.
Mens loop her sjekker om noen av disse verdiene i produktet bordet er mindre enn null (negativ). Hvis det er det, det setter verdien avshort til 1 (gjennom, kort, lokalt erklærte i den sammensatte setningen). Hvis det er noen mangel, informerer mens loop brukeren ved hjelp av SELECT statement.The callInsertUpdate Prosedyre Denne prosedyren tar som input parametere,short ognumber