[firebase-br] Res: Re: Res: Dúvida com Stored Procedure no FireBird

José Aparecido Pereira j.aparecido.p em gmail.com
Seg Maio 12 17:59:38 -03 2008


OK Robson, vou fazer um teste pela aplicação, depois dou um alô, como foi...

Obrigado,

José Aparecido


Em 12/05/08, robson <robsonfg em terra.com.br> escreveu:
>
> tente assim:
>
>
> seucomponente.sql.params[indice].asstring:=quotedstr('A')+','+quotedstr('B')
>
>
> e assim por diante
>
> -------Mensagem original-------
>
> De: José Aparecido Pereira
> Data: 12/05/2008 14:54:41
> Para: FireBase
> Assunto: Re: [firebase-br]Res: Dúvida com Stored Procedure no FireBird
>
> Olá, obrigado pelo retorno,
>
> Já tentei fazer isto que você falou, passando os valores do parâmetro de
> entrada com ' ', ex. :TIPOENT = 'B','D'
>
> Mas, fazendo um teste pelo IBOConsole, dá o seguinte erro:
>
>
> ISC ERROR CODE:335544569
>
> ISC ERROR MESSAGE:
> Dynamic SQL Error
> SQL error code = -104
> Token unknown - line 1, char 199
> B
>
>
>
> Em 12/05/08, robson <robsonfg em terra.com.br> escreveu:
> >
> > para que funcione os caracteres passados devem estar no formato que o
> > firebird utiliza, ou seja, cada um sendo um caracter assim seu parametro
> > tipo enter tem que ser passado assim
> >
> > tipoent='A','B'
> >
> > ou seja, vc tem que colocar cada opção entre aspas
> >
> > -------Mensagem original-------
> >
> > De: José Aparecido PereiraData: 05/12/08 14:06:49
> > Para: lista em firebase.com.br
> > Assunto: [firebase-br] Dúvida com Stored Procedure no FireBird
> >
> > Olá pessoal,
> >
> > Tenho um problema pra resolver com uma Stored Procedure, já tentei de
> > algumas formas, mas até então ainda não deu certo.
> >
> > O problema é o seguinte: Preciso usar o Filtro usando ( IN ) na cláusula
> > WHERE, para retornar uma faixa de registros, quando utilizo somente um
> > caracter, funciona normal, quando acrescento mais de um, não retorna
> nada.
>
> >
> > Ex.: O Parâmetro TIPOENT = B, retorna normal o período;
> > O Parâmetro TIPOENT = B,D não retorna nenhum registro.
> >
> > O Parâmetro foi testado com o Tipo CHAR e VARCHAR ( input ).
> >
> >
> > Código SQL usando a sintax FOR SELECT;
> > ...
> > FOR SELECT DISTINCT( EXTRACT( YEAR FROM M.MOVDATAVENC ) ),
> > ( EXTRACT( MONTH FROM M.MOVDATAVENC ) )
> > FROM TMMOVIMENTO M
> > WHERE M.MOVDATAVENC BETWEEN :DATAINI AND :DATAFIM
> > AND M.MOVTIPODOAC IN( :TIPOENT )
> > INTO :Ano, :Mes DO
> > BEGIN
> > ...
> >
> > Código SQL usando a sinxtax FOR EXECUTE STATEMENT;
> > ...
> > sSQL = 'SELECT DISTINCT( EXTRACT( YEAR FROM M.MOVDATAVENC ) ), (
> EXTRACT(
> > MONTH FROM M.MOVDATAVENC ) ) ';
> > sSQL = sSQL || 'FROM TMMOVIMENTO M ';
> > sSQL = sSQL || 'WHERE M.MOVDATAVENC BETWEEN ''' || :DATAINI || '''' || '
> > AND ''' || :DATAINI || '''';
> > sSQL = sSQL || 'AND M.MOVTIPODOAC IN( ''' || :TIPOENT || '''' || ' )';
> >
> > FOR EXECUTE STATEMENT
> > sSQL
> > INTO :Ano, :Mes DO
> > BEGIN
> > ...
> >
> > Esta segunda Opção seria mais interessante no caso que estou utilizando,
> > porque tenho mais poder para interagir com a query, em outros critérios
> a
> > serem feitos...
> > A pergunta é:
> > Como ficaria a sintax do parâmetro com tipo caracter, utilizando o
> Filtro
> > (
> > IN ) na cláusula WHERE?
> >
> > Obs.: Estou utilizando o FireBird 1.5
> >
> > Obrigado,
> >
> > José Aparecido
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use: http://www
> > firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www
> firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista