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
