Erro XSQLDA ao Executar procedure

Delphi

Banco de Dados

Stored Procedures

Firebird

21/12/2022

Pessoa bom dia. Tenho um projeto com mais de 100 procedures que estava no delphi 10 Seatle. Migrei o projeto para o delphi 10.3 e agora ao executar qualquer procedure sempre recebo o erro "XSQLDA index out of Range". Não se trata de erro no projeto pois no seatle funciona.

Uso componente interbase e é inviável substituir todos os componentes do projeto.

Nesse caso estou usando IBDataBase, Transacion e IBStorecProc que é onde ocorre o problema.

Código.

execprocedure.StoredProcName := 'SP_TESTE';
execprocedure.ParamByName('ID').AsInteger := 1;
execprocedure.ExecProc;

usando execprocedure.Params[0]... Também ocorre o erro.

O erro sempre ocorre ao definir o valor para o primeiro parâmetro independe da procedure. Lembrando, "Não se trata de erro no código". Acredito que seja algum erro nativo delphi ou até mesmo no componente StoredProc.

Alguem teria alguma sugestão?
Antonelly Silva

Antonelly Silva

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

21/12/2022

veja se isto te ajuda:

https://docwiki.embarcadero.com/InterBase/2020/en/Creating_Parameters_at_Runtime

GOSTEI 0
Antonelly Silva

Antonelly Silva

21/12/2022

veja se isto te ajuda:

https://docwiki.embarcadero.com/InterBase/2020/en/Creating_Parameters_at_Runtime

Dessa forma não funciona. Preciso preservar o ParamByName, por que é inviável o retrabalho que eu teria que fazer no projeto para alterar todas as procedures presentes nele que já estavam funcionando no delphi seatle.
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

21/12/2022

se você está indicando a stored procedure em tempo de execução, como o componente vai saber quais são os parâmetros?
execprocedure.StoredProcName := 'SP_TESTE';
execprocedure.ParamByName('ID').AsInteger := 1;
execprocedure.ExecProc;


de qualquer modo, segue outra dica:
https://docwiki.embarcadero.com/InterBase/2020/en/Preparing_and_Executing_a_Stored_Procedure

GOSTEI 0
POSTAR