[firebase-br] [Stored Procedure] Erro de sintaxe
Jader Ricardo
jader em caramuru.com
Seg Jul 4 15:17:13 -03 2005
Boa tarde a todos !
Tentei escrever o código abaixo para solucionar meu post anterior aqui na
lista, mas está dando erro, deve ser um erro de sintaxe, alguma ajuda ?
***
CREATE PROCEDURE SP_CONSULTA_CLIENTES (
PECODIGO INTEGER,
PENOME VARCHAR(50),
PECIDADE VARCHAR(30))
RETURNS (
PSCODIGO INTEGER,
PSNOME VARCHAR(50),
PSCIDADE VARCHAR(30))
AS
DECLARE VARIABLE STRSQL VARCHAR(100);
DECLARE VARIABLE CONT INTEGER;
BEGIN
/* Iniciando variáveis */
STRSQL = 'SELECT * FROM CLIENTES WHERE ';
CONT = 0;
/* Testando o primeiro atributo */
IF (:PECODIGO IS NOT NULL) THEN
BEGIN
STRSQL = :STRSQL ||'CODIGO = ' || :PECODIGO;
CONT = 1;
END; /* => => => Aqui sempre dá o erro, porquê ? */
/* Testando o segundo atributo
O número um serve para indicar ser vou ter que usar um AND */
IF (:CONT = 1) AND (:PENOME IS NOT NULL) THEN
BEGIN
STRSQL = :STRSQL || 'AND NOME = ' || :PENOME;
CONT = 1;
END
ELSE
BEGIN
IF (:PENOME IS NOT NULL) THEN
BEGIN
STRSQL = :STRSQL || 'NOME = ' || :PENOME;
CONT = 1;
END
END;
/* Testando o terceiro atributo
O número um serve para indicar ser vou ter que usar um AND */
IF (:CONT = 1) AND (:PECIDADE IS NOT NULL) THEN
BEGIN
STRSQL = :STRSQL || 'AND CIDADE = ' || :PECIDADE;
CONT = 1;
END
ELSE
BEGIN
IF (:PECIDADE IS NOT NULL) THEN
BEGIN
STRSQL = :STRSQL || 'CIDADE = ' || :PECIDADE;
END
END;
/* Executar o select */
FOR EXECUTE STATEMENT :STRSQL
INTO :PSCODIGO,:PSNOME,:PSCIDADE
DO
BEGIN
SUSPEND;
END
END
***
Jader Ricardo
Mais detalhes sobre a lista de discussão lista