While loop determina a diferença entre a quantidade de produto requerida e a quantidade correspondente em stock (produtos da tabela). Esta diferença é colocado na célula correspondente no procedimento table.The informUser O informUser temporário tem como parâmetros de entrada, enumberOfRowsshort. Você já sabe o uso denumberOfRows. short foi mencionado acima. Ele pode ter o valor, de zero ou 1. Quando se tem zero, isso significa que, nessa altura assumirmos que cada um de a quantidade dos produtos que o cliente tenha solicitado, está disponível.
Este procedimento irá verificar se é assim para cada uma das quantidades solicitadas. Se não for assim, para qualquer quantidade pedida, então o valor deshort irá ser alterado para 1 (no presente processo). A declaração composto do procedimento tem duas seções: a seção de declaração e uma seção de loop while.
O código para o procedimento é: #procedure informar usuário de qualquer delimitador escassez //cria PROCEDIMENTO informUser (IN NumberOfRows INTEGER, OUT curto INTEIRO) BEGIN # circuito contador DECLARE variável i INTEGER PADRÃO 1; #variable para a quantidade que permaneceria DECLARE QtyRemainVar INTEGER; Enquanto eu SELECIONE QtyRemain DE SaleDetailsTemp WHERE ID = i INTO QtyRemainVar; IF QtyRemainVar SELECIONAR ProductName, "é curto por 'AS Incident, (QtyRemain * -1) AS QuantityRemaining DE SaleDetailsTemp WHERE ID = i; SET curto = 1; Curtas = OUTRO JOGO 0; ACAB