[firebase-br] SP Retornando todos os registros do banco

Ivan Carvalho ivan_carvalho em yahoo.com
Sex Mar 24 15:15:51 -03 2006


Evandro,
Fiz algumas modificações na SP que você enviou.
Você não pode utilizar na cláusula FROM variáveis e/ou
parâmetros. Então você cria a SQL em tempo de execução
e roda utilizando EXECUTE STATEMENT. 
Também modifiquei o tipo da variável TABLENAME para o
mesmo tipo que é declarada na tabela RDB$RELATIONS.
Veja como ficou abaixo.
Grande abraço,
Ivan Carvalho


CREATE PROCEDURE SP_TOTAL_REGISTRO 
RETURNS (
    NUMRECORD INTEGER)
AS
DECLARE VARIABLE RECNO INTEGER;
DECLARE VARIABLE L_SQL VARCHAR(1024);
DECLARE VARIABLE TABLENAME CHAR(31) CHARACTER SET
UNICODE_FSS;
DECLARE VARIABLE RECCOUNT INTEGER;
BEGIN
     recno = 0;
     reccount = 0;
FOR
   SELECT
         RDB$RELATION_NAME
   FROM RDB$RELATIONS
   WHERE
        (rdb$system_flag = 0)
        AND (NOT RDB$RELATION_NAME IN (SELECT
RDB$VIEW_NAME FROM
                                             
RDB$VIEW_RELATIONS))
   INTO :tablename
   DO
    BEGIN
       L_SQL = '';
       L_SQL = 'SELECT COUNT(*)';
       L_SQL = L_SQL || ' FROM ' || :tablename;
       EXECUTE STATEMENT 
       L_SQL
       INTO :recno;
       reccount = reccount + recno;
    END
       numrecord = reccount;
  SUSPEND;
END;


	



	
		
_______________________________________________________ 
Yahoo! doce lar. Faça do Yahoo! sua homepage. 
http://br.yahoo.com/homepageset.html 





Mais detalhes sobre a lista de discussão lista