Fórum Procedure SQL com erro ! #301253

31/10/2005

0

Bom dia !

pq sera que esta procedure esta com erro !

esta dando o seguinte erro !

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
SKIP.
At line 18, column 21.

CREATE PROCEDURE LOOP9
RETURNS (
SELECAO INTEGER,
SELECAO1 INTEGER
)
AS
DECLARE VARIABLE CONTADOR INTEGER;
DECLARE VARIABLE ULTIMO INTEGER;
DECLARE VARIABLE SEQUENCIA INTEGER;
BEGIN
CONTADOR = 0;
SEQUENCIA = 1;
FOR SELECT CODAFILIADO FROM TBL_AFILIADOS INTO :SELECAO DO BEGIN
SELECAO1 = ULTIMO;
SUSPEND;
CONTADOR = CONTADOR + 1;
IF ( CONTADOR >= 3 ) THEN BEGIN
SELECT FIRST 1 SKIP SEQUENCIA, CODAFILIADO FROM TBL_AFILIADOS INTO :ULTIMO;
SEQUENCIA = SEQUENCIA + 1;
END
END
END;


[b:a3fa80bd40][color=blue:a3fa80bd40]Título do tópico editado por Vinicius2K:[/color:a3fa80bd40][/b:a3fa80bd40] [b:a3fa80bd40][color=red:a3fa80bd40][list:a3fa80bd40][*:a3fa80bd40]Título em maiúsculas: ´PROCEDURE SQL COM ERRO !´ [*:a3fa80bd40]O tópico não foi bloqueado em respeito aos colegas que postaram respostas.[/list:u:a3fa80bd40][/color:a3fa80bd40][/b:a3fa80bd40] Peço que leia atentamente as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] e se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].



Dangardenal

Dangardenal

Responder

Posts

31/10/2005

Bruno Belchior

CREATE PROCEDURE LOOP9 
RETURNS ( 
SELECAO INTEGER, 
SELECAO1 INTEGER 
) 
AS 
DECLARE VARIABLE CONTADOR INTEGER; 
DECLARE VARIABLE ULTIMO INTEGER; 
DECLARE VARIABLE SEQUENCIA INTEGER; 
BEGIN 
  CONTADOR = 0; 
  SEQUENCIA = 1; 
  FOR SELECT CODAFILIADO FROM TBL_AFILIADOS INTO :SELECAO DO 
  BEGIN 
    SELECAO1 = ULTIMO; 
    SUSPEND; 
    CONTADOR = CONTADOR + 1; 
    IF ( CONTADOR >= 3 ) THEN 
    BEGIN 
      SELECT FIRST 1 SKIP SEQUENCIA CODAFILIADO FROM TBL_AFILIADOS INTO :ULTIMO; 
      SEQUENCIA = SEQUENCIA + 1; 
    END 
  END 
END;



Responder

Gostei + 0

31/10/2005

Firekiller

Colega Bruno creio que mesmo com sua implementação não irá funcionar. É que a clausula SKIP não aceita parâmetros (e pelo que me parece é o que o colega está tentando utilizar). Acho que poderia funcionar se ele utilizasse Execute Statement para executar esse sql. Algo assim:

CREATE PROCEDURE LOOP9 
RETURNS ( 
SELECAO INTEGER, 
SELECAO1 INTEGER 
) 
AS 
DECLARE VARIABLE CONTADOR INTEGER; 
DECLARE VARIABLE ULTIMO INTEGER; 
DECLARE VARIABLE SEQUENCIA INTEGER; 
BEGIN 
  CONTADOR = 0; 
  SEQUENCIA = 1; 
  FOR SELECT CODAFILIADO FROM TBL_AFILIADOS INTO :SELECAO DO 
  BEGIN 
    SELECAO1 = ULTIMO; 
    SUSPEND; 
    CONTADOR = CONTADOR + 1; 
    IF ( CONTADOR >= 3 ) THEN 
    BEGIN 
      EXECUTE STATEMENT ´SELECT FIRST 1 SKIP ´||SEQUENCIA||´ CODAFILIADO FROM TBL_AFILIADOS´ INTO :ULTIMO; 
      SEQUENCIA = SEQUENCIA + 1; 
    END 
  END 
END;



Responder

Gostei + 0

01/11/2005

Dangardenal

Valeu pela a ajuda ai !


Funfo blz !


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar