Ir para conteúdo
Fórum Script Brasil

prodelfirebird

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Sobre prodelfirebird

prodelfirebird's Achievements

0

Reputação

  1. Boa noite ... desculpe a demora (ocupado com outros lances aqui) ... Fiz os testes ... não deu certo. No código da aplicação que uso para alterar a procedure, eu uso o componente IBSQL e o ExecQuery. Troquei pelo componente IBScript e ExecuteScript, mas ainda continua dando o mesmo erro.
  2. beleza ... assim que chegar em casa eu faço o teste e posto aqui ... E como você disse que pode ser que a sentença esteja ultrapassando 255 caracteres ... fiz uma contagem ... olha aí na imagem.
  3. No caso o erro está dando no " : " -- dois pontos -- (não é o no ponto e vírgula ; )
  4. Eu não estou em casa agora para fazer o teste que você recomendou. Assim que for possível, eu faço o teste e posto aqui... Mas só pra te informar ... - Token unknown - line 32, char 16 // Linha 32, caracter 16 Essa parte do erro, dá exatamente no " : " que vem antes da variável VALOR_TEMP ... Será que o problema é no " : " ou em alguma outra parte da sentença Select ?
  5. Jhonas, bom dia! Os valores que estão sendo passados pela aplicação como parâmetros são CODIGO, DT_INICIO e STATUS. A variável VALOR_TEMP é uma variável local e não é passada pela aplicação.Ela é usada para auxiliar nos cálculos que são feitos pela procedure. Ela não está sendo iniciada, pois eu não estou usando a procedure para fazer os cálculos. Eu só quero alterar o conteúdo da procedure. Será que para alterar a procedure é necessário iniciar (instanciar) a procedure? Tipo ... DECLARE VARIABLE VALOR_TEMP NUMERIC (10,4); BEGIN MOV_TOTAL = 0.00; VALOR_TEMP = 0.00; // <-- Iniciando a variável local BEGIN IF (STATUS = 0) ..... .... // etc ... Será que seria essa a solução Jhonas?
  6. Pessoal, estou com essa dificuldade, quando tento alterar a procedure pela aplicação, passando a seguinte DDL: (Procedure reduzida para não ocupar muito espaço – Não ligue pra lógica, que aqui eu entendo, rsrs) SET TERM ^ ; ALTER PROCEDURE P_MOVIMENTO ( CODIGO VARCHAR(10), DT_INICIO DATE, STATUS INTEGER) RETURNS ( MOV_TOTAL NUMERIC(20,5)) AS DECLARE VARIABLE VALOR_TEMP NUMERIC(10,4); BEGIN MOV_TOTAL = 0.00; BEGIN IF (STATUS = ) THEN /* HABILITADO*/ BEGIN /* CALCULO TOTAL MOVIMENTADO */ SELECT SUM(MT.QTDE * M.VALOR_UNIT) FROM MOV_MATERIAL MT LEFT JOIN MATERIAIS M ON (MT.COD_MAT = M.CODIGO) LEFT JOIN DER_RELAC DR ON (MT.COD_DOCTO = DR.CODIGO) WHERE MT.CONTA_DECL = : CODIGO AND MT.CONTA_DECL IS NOT NULL AND MT.COD_DOCTO IS NOT NULL AND DR.DATA < :DT_INICIO INTO :VALOR_TEMP; /* <-- Problema está ocorrendo aqui */ IF (VALOR_TEMP IS NULL) THEN VALOR_TEMP = 0.00; MOV_TOTAL = VALOR_TEMP; /* Continua os cálculos para outros status .... */ END END END^ SET TERM ; ^ No código da aplicação eu uso o ExecQuery do TIBSQL do componente InterBase para passar a DDL para o banco, mas quando chega na linha “INTO :VALOR_TEMP;” dá o seguinte erro: Dynamic SQL Error - SQL error code = -104 - Token unknown - line 32, char 16 - ? Para resolver esse problema, já tentei fazer as seguintes ações: - “Dropar” a procedure (sem depedência de outras procedures) e criá-la novamente. - Paramcheck = false - Usar o TIBScript ao invés do TIBSQL, mas não tem no componente Interbase da versão que uso. Até agora não consegui resolver o problema. Uso Delphi 7 no desenvolvimento da aplicação e Banco Firebird 1.5 com IBExpert. Alguém poderia me sugerir algo? AVISO: Dúvidas devem ser postadas no forum principal ( Delphi ) e não no forum ( Tutoriais Delphi ) onde somente deve ter códigos prontos .. ok ?
×
×
  • Criar Novo...