Erro ao passar parametro para SP.

Firebird

24/07/2006

Olá pessoal,

Tenho uma stored procedure que tem um parametro dentro de um in.
Exemplo: IdTurma in (:IdTurma)

Sendo que IdTurma é do tipo VarChar pois pode ser ´1´ ou ´1,2´ ou ´1,2,3´ mas quando eu passo esse parametro como VarChar ele não consegue trazer resultado.


Se eu fizar manual IdTurma in (1,2) ele retorna resultado.

Alguma dica?


Yallebr

Yallebr

Curtidas 0

Respostas

Cabelo

Cabelo

24/07/2006

Como vc chama a SP no programa ????

não falta aspas no parâmetro???


GOSTEI 0
Yallebr

Yallebr

24/07/2006

Como vc chama a SP no programa ???? não falta aspas no parâmetro???


Eu não estou chamando de dentro do programa ainda, estou chamando de dentro do IbExpert.
Estou passando assim qd abre a janela para informar os parametros:

[IdTurma] 1,2,3,4

Não pode colocar aspas pois se colocar aspas no In da erro.


GOSTEI 0
Cabelo

Cabelo

24/07/2006

Estou passando assim qd abre a janela para informar os parametros: [IdTurma] 1,2,3,4 Não pode colocar aspas pois se colocar aspas no In da erro.


Se vc colocar aspas dá erro???? vc está colocando assim???

IdTurma in (||´´|| :IdTurma ||´´||)


será que dá erro mesmo ???


GOSTEI 0
Yallebr

Yallebr

24/07/2006

Opa,

Nao foi assm que coloquei nao, vou tentar novamente e aviso.

Obrigado.


GOSTEI 0
Yallebr

Yallebr

24/07/2006

Olá Cabelo,

Realmente não funcinou.
Estou te passando o codigo para vc ver se é isso mesmo.

  COMANDOSQL = ´SELECT DISTINCT(A.IdAluno) FROM Alunos A ´ ||
    ´LEFT JOIN AlunosParcelas P ON A.IdAluno = P.IdAluno ´ ||
    ´WHERE (CURRENT_DATE > P.Vencimento) AND (Pago = 0) and ´ ||
    ´extract(year from vencimento) = 2006 and P.IdTipoCobranca ´ ||
    ´in (´ || :STRIDTIPOCOBRANCA ||´)´;

  FOR execute statement :ComandoSQL into :intIdAluno DO
  BEGIN


O erro que aparece que é ´Arithmet Overload or Division By Zero....´

Valew


GOSTEI 0
Cabelo

Cabelo

24/07/2006

Colega... tenta assim :

FOR execute statement 
    ´SELECT DISTINCT(A.IdAluno) FROM Alunos A ´ || 
    ´LEFT JOIN AlunosParcelas P ON A.IdAluno = P.IdAluno ´ || 
    ´WHERE (CURRENT_DATE > P.Vencimento) AND (Pago = 0) and ´ || 
    ´extract(year from vencimento) = 2006 and P.IdTipoCobranca ´ || 
    ´in (´ || ´´ || :STRIDTIPOCOBRANCA || ´´ ||´)´ 
    into :intIdAluno DO
BEGIN 



GOSTEI 0
Yallebr

Yallebr

24/07/2006

Funcionou amigo, obrigado!


GOSTEI 0
POSTAR