Fórum Executar Stored Procedure no Delphi 2009 + Firebird 2.1 #383485
12/08/2010
0
Estou com problemas para executar stored procedures no delphi 2009 com firebird 2.1.
Tenho a seguinte tabela criada no banco:
Create Table CURSOS ( CodCur Integer NOT NULL, SigCur Varchar(5) NOT NULL, DesCur Varchar(45) NOT NULL ); Alter Table CURSOS add Constraint pk_CURSOS Primary Key (CodCur);
Também tenho a seguinte procedure criada no banco:
CREATE PROCEDURE IAE_CURSOS ( nCodCur Integer, nSigCur Varchar(5), nDesCur Varchar(45), nOpcCur Varchar(1)) as BEGIN IF (nOpcCur = 'I') THEN INSERT INTO CURSOS(CODCUR, SIGCUR, DESCUR) VALUES (:nCODCUR, :nSIGCUR, :nDESCUR); IF(nOpcCur = 'A') THEN UPDATE CURSOS SET SIGCUR = :nSIGCUR, DESCUR = :nDESCUR WHERE CODCUR = :nCODCUR; IF(nOpcCur = 'D') THEN DELETE FROM CURSOS WHERE CODCUR = :nCODCUR; END ;
No meu projeto Delphi, tenho um DataModule que contem um TSQLConnection (DBAcesso) utilizando o driver para firebird TBODBXFB e um TSQLStoredProc(ssp) devidamente configrados.
No código do meu botão INCLUIR tenho:
var
Tran : TDBXTransaction;
begin
inherited;
try
Tran := DM.SQLAcesso.BeginTransaction;
DM.ssp.Close;
DM.ssp.ParamByName('nCODCUR').Value := edtCURCodigo.Text;
DM.ssp.ParamByName('nSIGCUR').Value := edtCURSigla.Text;
DM.ssp.ParamByName('nDESCUR').Value := edtCURDescricao.Text;
DM.ssp.ParamByName('nOPCCUR').Value := 'I';
DM.ssp.ExecProc;
DM.SQLAcesso.CommitFreeAndNil(Tran);
Application.MessageBox('Operação realizada com sucesso!', 'AVISO!',
MB_APPLMODAL + MB_ICONINFORMATION + MB_OK + MB_DEFBUTTON1);
except
DM.SQLAcesso.RollbackFreeAndNil(Tran);
Application.MessageBox('Um erro aconteceu operação cancelada!', 'ERRO!',
MB_APPLMODAL + MB_ICONEXCLAMATION + MB_OK+MB_DEFBUTTON1);
end;
end;
Sempre que executo a aplicação e tento inserir alguma informação, vai direto para a parte do EXCEPT.
Se executo a procedure direto pelo banco, funciona!
O que poderia estar errado ?
Obrigado.
Nilson Rapcinski
Curtir tópico
+ 0Posts
15/08/2010
Carlos Mazzi
Gostei + 0
16/08/2010
Nilson Rapcinski
Também baixei uma versão do Delphi 2010 e funciona.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)