Jorge, vai ficar assim..

 ----------   corpo da procedure   ----------------
 CREATE PROCEDURE P_INCREMENTA_CAMPOS (
     PI_TABELA VARCHAR(30),
     PI_CAMPO VARCHAR(20))
 RETURNS (
     PO_VALUE INTEGER)
 AS
 BEGIN
   EXECUTE STATEMENT
   'SELECT MAX (' || :PI_CAMPO || ') FROM ' || :PI_TABELA
   INTO :PO_VALUE;
   SUSPEND;
 END;
 ----------------------------------------------------


..Mas não é aconselhavel tratar assim incremento de PK de tabela,
o ideal é usar generator, e ter um outro campo, q vc possar usar
como quiser e mostrar ao usuário.



--- Em delphi-br@yahoogrupos.com.br, Rodrigo Bevilacqua Marcondes
<[EMAIL PROTECTED]> escreveu
>
> [FOR] EXECUTE STATEMENT <string>
> [INTO :var1 [, var2 [, :varn]]] DO
> <compound-statement>];
> <compound-statement> = {statement | block-of-statements}
> 
> ---Ex .
> SQL = 'EXECUTE PROCEDURE '||PROC_NAME;
> EXECUTE STATEMENT SQL;
> 
> "Jorge Diego de A. Lopes" <[EMAIL PROTECTED]> escreveu: Ola pessoal
estou tentando fazer uma StoredProcedure generica para
> fazer o auto incremento do campo chave no momento da inserção pelo
delphi.
> 
> ----------   corpo da procedure   ----------------
> CREATE PROCEDURE P_INCREMENTA_CAMPOS (
>     PI_TABELA VARCHAR(30),
>     PI_CAMPO VARCHAR(20))
> RETURNS (
>     PO_VALUE INTEGER)
> AS
> BEGIN
>   SELECT MAX (:PI_CAMPO) FROM :PI_TABELA
>   INTO :PO_VALUE;
>   SUSPEND;
> END;
> ----------------------------------------------------
> so que está procedure nao esta compilando, pois ela informa que esta
> tabela nao existe, pois o correto seria assim
> SELECT MAX (ID_USUARIO) FROM USUARIOS 
> INTO :PO_VALUE;
> So que esta forma nao ficaria generia para todas as tabelas... alguem
> poderia me informar se teria alguma forma generica de fazer isso...
> 
> 
> 
> 
>               
> ---------------------------------
>  Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador
agora! 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>





-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a