Plpgsql no Delphi

PostgreSQL

Delphi

Firebird

24/04/2015

Estou migrando toda a minha base de dados do firebird para o postgres.
Estava utlizando dbexpress para conectar ao firebird e agora estou usando o firedac para o postgres.
Na epoca do dbexpress eu nao consegui utilzar o execute block ou qualquer comando pl/sql dentro do delphi com firebird.

Agora tenho um problema semelhante no firedac. Estou tentando executar PlpgSq abaixo no delphi e ele da parametro nao encontrado:
Ja tentei criar os parametros no braço, mudar as variaveis, postei em algums forum e nada.Gostaria de saber

1 - O firedac tem suporte ao uso de plpgsql ?
2 - Se tiver como uso.
3 - posso passar parametros para o plpgsql?
4 - Qual componente eu utilizo ?

att


procedure TForm11.Button2Click(Sender: TObject);
begin

FDQuery1.Close;
FDQuery1.SQL.text:='DO LANGUAGE plpgsql $$ '+
'BEGIN '+
' update talha_safra set TALHAO_ID=:TALHAO_ID, SAFRA_ID=:SAFRA_ID, SIT_CADASTRAL=:SIT_CADASTRAL, REPLICACAO_EFETUADA=:REPLICACAO_EFETUADA where talhao_id=:talhao_id and safra_id=:safra_id ' +
' IF found THEN '+
' RETURN; '+
' END IF; '+
' '+
' '+
' INSERT INTO TALHAO_SAFRA (TALHAO_ID, SAFRA_ID, SIT_CADASTRAL, REPLICACAO_EFETUADA) VALUES (:TALHAO_ID,:SAFRA_ID,:SIT_CADASTRAL,:REPLICACAO_EFETUADA) '+
' RETURN; '+
' EXCEPTION WHEN unique_violation THEN '+
' END; '+
' '+
'END; '+
'$$;';
FDQuery1.Params.ParamByName('TALHAO_ID').AsInteger:=12;
FDQuery1.Params.ParamByName('SAFRA_ID').AsInteger:=1 ;
FDQuery1.Params.ParamByName('SIT_CADASTRAL').AsString:='Ativo';
FDQuery1.Params.ParamByName('REPLICACAO_EFETUADA').AsString:='NÃO';
FDQuery1.ExecSQL;
Rafael Maires

Rafael Maires

Curtidas 0
POSTAR