Ir para conteúdo
Fórum Script Brasil
  • 0

Transformação da instrução para o Firebird


warlockplus

Pergunta

Bom dia pessoal!

Precisave de converter o seguinte código SQL Server para o Firebird:

SET NOCOUNT ON

DECLARE @QTDELITROS FLOAT, @SOMAKM FLOAT, @SOMAFINAL FLOAT, @TOTALLITROS FLOAT, @I INT

DECLARE MEDIA_COMB CURSOR FOR 
SELECT KM, QTDE FROM ABASTECIMENTO 

OPEN MEDIA_COMB

FETCH NEXT FROM MEDIA_COMB INTO @SOMAKM, @QTDELITROS

SET @TOTALLITROS = 0.00
SET @I = 0
WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT STR(@SOMAFINAL) + ' ' + STR(@QTDELITROS) 
    IF @I = 0  
      SET @I = 1
    ELSE     
      SET @TOTALLITROS =  @TOTALLITROS + @QTDELITROS

    FETCH NEXT FROM MEDIA_COMB INTO @SOMAFINAL, @QTDELITROS
END

PRINT (@SOMAFINAL - @SOMAKM)/@TOTALLITROS

CLOSE MEDIA_COMB
DEALLOCATE MEDIA_COMB

SET NOCOUNT OFF

E algo parecido que eu preciso tenho que fazer alguns ajustes mais migrando para o firebird já era 99%.

Obrigado galera.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Precisave de converter o seguinte código SQL Server para o Firebird:

warlockplus, ainda que eu não possa lhe ajudar muito, convém que você informe qual versão do banco Firebird você está usando, porque o uso de cursores da forma como abaixo, está disponível a partir da versão 2.0. No caso de ser a versão 1.5, terá que ser usado outro recurso (FOR SELECT ...)

Outra coisa, não entendi direito qual o resultado (não os valores) que você obtém com este código, porque não tinha visto o uso de "envio" de mensagens ao usuário (PRINT) em um laço, ou ocorrendo mais que uma vez em um único procedimento. Normalmente, vemos algum tipo de teste e conforme o resultado se enviava um RAISEERROR (que me parece executar tarefa semelhante - gerar mensagens de erro, segundo a documentação: Using PRINT).

Para o caso de gerar uma mensagem de erro para o usuário, no Firebird isto é feito através do comando EXCEPTION

Firebird 2.0 Language Reference

Firebird 1.5 Language Reference

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...