Me adiciona aí, só to meio sem tempo agora, mas assim que tiver um
tempinho converssams


2006/4/18, Roberto Castro <[EMAIL PROTECTED]>:
> Boa Tarde !!
>
> Numa aplicação, de acordo com o btnbotton clicado, a variável 'opçao'
> receberá um valor. No decorrer do processo, de acordo com a 'opcao' deverá
> executar um comando da function onde os valores a serem adicionados (input)
> serão supridos na aplicação.
> Só que dá o seguinte erro:
> ERROR:  syntax error at or near "$1" at character 36
> QUERY:  insert into tb_conta_corrente (id, $1 , $2 , $3 , $4 , $5 , $6 , $7
> , $8 , $9 , $10 , $11 , $12 , $13 , $14 , $15 , $16 , $17 , $18 , $19 , $20
> , $21 ) values ( $22 , $23 , $24 , $25 , $26 , $27 , $28 , $29 , $30 , $31 ,
> $32 , $33 , $34 , $35 , $36 , $37 , $38 , $39 , $40 , $41 , $42 )
> CONTEXT:  SQL statement in PL/PgSQL function "iud_tb_conta_corrente" near
> line 27
>
> === xxx ===
> Syntax:
>
> CREATE OR REPLACE FUNCTION iud_tb_conta_corrente(
>     codemp integer,
>     titulo integer,
>     tipolanc char,
>     placa varchar,
>     referencia varchar,
>     codgene varchar,
>     bordero integer,
>     codfor integer,
>     chave varchar,
>     dt_leilao date,
>     dt_cadastro date,
>     dt_pgto date,
>     dt_baixa date,
>     dt_envio date,
>     dt_recbto date,
>     tipomov char(1),
>     valor numeric(18,2),
>     tipo char,
>     observacao varchar,
>     usuario varchar,
>     data_hora timestamp,
>    opcao char) RETURNS varchar
> AS $$
> DECLARE
>    vcodemp ALIAS FOR $1;
>     vtitulo ALIAS FOR $2;
>     vtipolanc ALIAS FOR $3;
>     vplaca ALIAS FOR $4;
>     vreferencia ALIAS FOR $5;
>     vcodgene ALIAS FOR $6;
>     vbordero ALIAS FOR $7;
>     vcodfor ALIAS FOR $8;
>     vchave ALIAS FOR $9;
>     vdt_leilao ALIAS FOR $10;
>     vdt_cadastro ALIAS FOR $11;
>     vdt_pgto ALIAS FOR $12;
>     vdt_baixa ALIAS FOR $13;
>     vdt_envio ALIAS FOR $14;
>     vdt_recbto ALIAS FOR $15;
>     vtipomov ALIAS FOR $16;
>     vvalor ALIAS FOR $17;
>     vtipo ALIAS FOR $18;
>     vobservacao ALIAS FOR $19;
>     vusuario ALIAS FOR $20;
>     vdata_hora ALIAS FOR $21;
>     vopcao ALIAS FOR $22;
> begin
> if vopcao = 'I' then begin
>      insert into tb_conta_corrente
> (id,codemp,titulo,tipolanc,placa,referencia,codgene,bordero,codfor,chave,dt_leilao,dt_cadastro,dt_pgto,dt_baixa,dt_envio,dt_recbto,tipomov,valor,tipo,observacao,usuario,data_hora)
>      values
> (vcodemp,vtitulo,vtipolanc,vplaca,vreferencia,vcodgene,vbordero,vcodfor,vchave,vdt_leilao,vdt_cadastro,vdt_pgto,vdt_baixa,vdt_envio,vdt_recbto,vtipomov,vvalor,vtipo,vobservacao,vusuario,vdata_hora);
>      RETURN 1;
>   end if;
>   if (opcao = 'U') then begin
>      update tb_conta_corrente set codemp      = vcodemp,
>                                   titulo      = vtitulo,
>                                   tipolanc    = vtipolanc,
>                                   placa       = vplaca,
>                                   referencia  =
> vreferencia,
>                                   codgene     = vcodgene,
>                                   bordero     = vbordero,
>                                   codfor      = vcodfor,
>                                   chave       = vchave,
>                                   dt_leilao   = vdt_leilao,
>                                   dt_pgto     = vdt_pgto,
>                                   dt_baixa    = vdt_baixa,
>                                   dt_envio    = vdt_envio,
>                                   dt_recbto   = vdt_recbto,
>                                   tipomov     = vtipomov,
>                                   valor       = vvalor,
>                                   tipo        = vtipo,
>                                   observacao  =
> vobservacao,
>                                   usuario     = vusuario,
>                                   data_hora   = vdata_hora
>      where ( id = id and codemp       = vcodemp
>                      and placa        = vplaca
>                      and referencia   = vreferencia
>                      and codgene      = vcodgene);
>      RETURN 2;
>   end if;
>   if (opcao = 'A') then begin
>      update tb_conta_corrente set codemp      = vcodemp,
>                                   placa       = vplaca,
>                                   referencia  =
> vreferencia,
>                                   codgene     = vcodgene,
>                                   bordero     = vbordero,
>                                   codfor      = vcodfor,
>                                   chave       = vchave,
>                                   dt_pgto     = vdt_pgto,
>                                   dt_baixa    = vdt_baixa,
>                                   usuario     = vusuario,
>                                   data_hora   = vdata_hora
>      where ( id =id and codemp       = codemp
>                      and placa       = placa
>                      and referencia  = referencia
>                      and codgene     = codgene
>                      and dt_baixa is null);
>      RETURN 3;
>   end if;
>   if (opcao = 'D') then begin
>      delete from tb_conta_corrente
>      where ( id = id and codemp        = codemp
>                       and placa        = placa
>                       and tipolanc     = tipolanc
>                       and referencia   = referencia
>                       and codgene      = codgene);
>   RETURN 0;
>   end if;
> END $$
> LANGUAGE 'plpgsql' VOLATILE ;
>
> Se tiver uma idéia melhor... acatarei a sugestão..Uso Delphi 7. Estou
> migrando do Firebird p/ PostgreSql...... Apanhando muito !!!
>  Posso add vc no meu msn??
> Grato
>
> Roberto Castro
> [EMAIL PROTECTED]
>
>
>  ________________________________
>  Abra sua conta no Yahoo! Mail - 1GB de espaço, alertas de e-mail no celular
> e anti-spam realmente eficaz.
>
>
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> http://www.postgresql.org.br
>
>


--
Nabucodonosor Coutinho
Database Administrator
PostgreSQL Brasil - www.postgresql.org.br
Accu Hosting - www.accuhosting.com
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a