Fórum Stored Procedure #40554
03/12/2003
0
Olá caros amigos. Será que alguém pode me ajudar. Estou criando uma stored procedure no Interbase e está dando um erro que não consigo achar. O erro é no ´VarErro´. Esta procedure tem que selecionar alguns registros e verificar a nota do aluno se ele está aprovado e se está reprovado. Como este select que está na procedure irá retornar mais que um registro não estou conseguindo criar uma maneira de ler um por um dos registros e verificar as notas do aluno vendo se ele está aprovado ou reprovado. O código é o seguinte. Agradeço se alguém puder ajudar.
Set Term @
Create Procedure ChecarNota(par_CTR Integer)
Returns (VarErro VarChar(10))
As
Declare Variable VarNotaTeo Integer;
Declare Variable VarNotaPra Integer;
Begin
VarErro = ´Aprovado´;
Select NotaPra, NotaTeo From Notas
Where CTR = :par_CTR into :VarNotaPra, :VarNotaTeo ;
If (VarNotaTeo < 7 or VarNotaPra <7) Then
Begin
VarErro = ´Reprovado´;
End
Return VarErro;
End @
Set Term @
Create Procedure ChecarNota(par_CTR Integer)
Returns (VarErro VarChar(10))
As
Declare Variable VarNotaTeo Integer;
Declare Variable VarNotaPra Integer;
Begin
VarErro = ´Aprovado´;
Select NotaPra, NotaTeo From Notas
Where CTR = :par_CTR into :VarNotaPra, :VarNotaTeo ;
If (VarNotaTeo < 7 or VarNotaPra <7) Then
Begin
VarErro = ´Reprovado´;
End
Return VarErro;
End @
Ricardo Barbosa
Curtir tópico
+ 0
Responder
Posts
03/12/2003
Buosinet
Voce tem que colocar := na atribuição, exemplo:
VarErro := Aprovado;
Boa Sorte
Buosi.
VarErro := Aprovado;
Boa Sorte
Buosi.
Responder
Gostei + 0
03/12/2003
Afarias
na verdade Buosinet vc está confundindo este operador de atribuição com o do Delphi. no IB, este operador de atribuição é apenas ´=´ mesmo!
bom, mas vamos ao problema...
considerando q a linha:
Set Term @
tem um ponto-e-vírgula (;) no final e q vc somente esqueceu de postar, o erro está na linha (note q, postar a mensagem de erro original sempre ajuda a detectar mais facilmente e corretamente o problema -- da próxima vez não esqueça)::
Return VarErro;
é onde deve estar seu erro, este comando ´Return´ não existe!
vc deve colocar ai um EXIT ou simplesmente nada... (considerando que este é um procedimento ´executável´ (retorna apenas 1 valor) e não ´selecionável´
T+
bom, mas vamos ao problema...
considerando q a linha:
Set Term @
tem um ponto-e-vírgula (;) no final e q vc somente esqueceu de postar, o erro está na linha (note q, postar a mensagem de erro original sempre ajuda a detectar mais facilmente e corretamente o problema -- da próxima vez não esqueça)::
Return VarErro;
é onde deve estar seu erro, este comando ´Return´ não existe!
vc deve colocar ai um EXIT ou simplesmente nada... (considerando que este é um procedimento ´executável´ (retorna apenas 1 valor) e não ´selecionável´
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)