[firebase-br] Stored Procedure - Erro quando n?o acho o codigo certo

Alessandro Lúcio Cordeiro da Silva alecordeirosilva em yahoo.com.br
Sex Jun 2 15:35:39 -03 2006


Osvaldo,
  Se não termos retorna resulta (no result set) da query do cursor, o firebird nem entrara dentro do laço for, então coloque o teste se é nulo fora do laço, o rs_codigo estara nulo por não ter recebido nenhum valor. Blz!!

Osvaldo <cslinf em uol.com.br> escreveu: 
Na SP abaixo eu coloquei que quando não fosse achado um valor no SELECT, no
lugar de NULL a SP retornaria Zero, mas não esta funcionando, voces poderiam
me ajudar ?

Osvaldo


SET TERM ^ ;

CREATE PROCEDURE SP_CODCHAR (
    SP_TABELA VARCHAR(50),
    SP_CAMPO VARCHAR(50),
    SP_RESULT VARCHAR(50),
    SP_DESCR VARCHAR(50))
RETURNS (
    RS_CODIGO CHAR(2))
AS
DECLARE VARIABLE SSQL VARCHAR(200);
BEGIN
   /* Montando a String para SQL */
    sSQL = 'SELECT '   ||
                   :SP_RESULT   ||
                   ' FROM '    || :SP_TABELA ||
                   ' WHERE '   ||
                   :SP_CAMPO   || '=' || '''' || :SP_DESCR || '''';
    FOR
        /* Executando a SQL */
        EXECUTE STATEMENT sSQL
         /* Obtendo os Campos e Valores retornados pela Consulta */
    INTO :RS_CODIGO
    DO
    IF(rs_codigo IS NULL) THEN
     RS_CODIGO=0;
  SUSPEND;
END^

SET TERM ; ^




______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

 __________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 


Mais detalhes sobre a lista de discussão lista