[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