Erro ao Gravar no banco com procedure ERRO: Input parameter mismatch for procedure
Boa Noite,
Gente estou com o seguinte erro: Input parameter mismatch for procedure
este erro ocorre toda vez que tento fazer minha aplicação gravar no banco de dados através de uma procedure simples:
CREATE OR ALTER PROCEDURE GRAVA_PLACA (
e_codigo integer,
e_placa varchar(10),
e_codcliente integer,
e_cliente varchar(80),
e_data date,
e_status varchar(30),
e_carro varchar(30),
e_cor varchar(30),
e_ano varchar(30),
e_observacao varchar(850),
e_km varchar(30))
as
begin
insert into TOP_115
(
codigo, placa, codcliente, cliente, data, status, carro, cor, ano, observacao, km
)
values
(
:e_codigo, :e_placa, :e_codcliente, :e_cliente, :e_data, :e_status, :e_carro, :e_cor, :e_ano, :e_observacao, :e_km
);
suspend;
end^
SET TERM ; ^
GRANT INSERT ON TOP_115 TO PROCEDURE GRAVA_PLACA;
GRANT EXECUTE ON PROCEDURE GRAVA_PLACA TO SYSDBA;
estou fazendo a conexão com a procedure por um componente TSQLStoredProcedure.
para passar os parâmetros e executa-la estou usando o seguinte comando:
procedure TfrmCadastroPlaca.gravaPlacaProc;
begin
with DMmain do
begin
SPgravaPlaca.Params[0].AsInteger := codplaca;
SPgravaPlaca.Params[1].AsString := edtplaca.text;
SPgravaPlaca.Params[2].AsInteger := StrToInt(edtCodigo.Text);
SPgravaPlaca.Params[3].AsString := edtcliente.text;
SPgravaPlaca.Params[4].AsDate := StrToDate (FormatDateTime('DD/MM/YYYY', Date));
SPgravaPlaca.Params[5].AsString := cboxstatus.text;
SPgravaPlaca.Params[6].AsString := edtcarro.text;
SPgravaPlaca.Params[7].AsString := edtcor.text;
SPgravaPlaca.Params[8].AsString := edtano.text;
SPgravaPlaca.Params[9].AsString := mmobservacao.text;
SPgravaPlaca.Params[10].AsString := edtKm.text;
DMmain.SPgravaPlaca.ExecProc;
end;
end;
Alguém pode me ajudar por favor?
Gente estou com o seguinte erro: Input parameter mismatch for procedure
este erro ocorre toda vez que tento fazer minha aplicação gravar no banco de dados através de uma procedure simples:
CREATE OR ALTER PROCEDURE GRAVA_PLACA (
e_codigo integer,
e_placa varchar(10),
e_codcliente integer,
e_cliente varchar(80),
e_data date,
e_status varchar(30),
e_carro varchar(30),
e_cor varchar(30),
e_ano varchar(30),
e_observacao varchar(850),
e_km varchar(30))
as
begin
insert into TOP_115
(
codigo, placa, codcliente, cliente, data, status, carro, cor, ano, observacao, km
)
values
(
:e_codigo, :e_placa, :e_codcliente, :e_cliente, :e_data, :e_status, :e_carro, :e_cor, :e_ano, :e_observacao, :e_km
);
suspend;
end^
SET TERM ; ^
GRANT INSERT ON TOP_115 TO PROCEDURE GRAVA_PLACA;
GRANT EXECUTE ON PROCEDURE GRAVA_PLACA TO SYSDBA;
estou fazendo a conexão com a procedure por um componente TSQLStoredProcedure.
para passar os parâmetros e executa-la estou usando o seguinte comando:
procedure TfrmCadastroPlaca.gravaPlacaProc;
begin
with DMmain do
begin
SPgravaPlaca.Params[0].AsInteger := codplaca;
SPgravaPlaca.Params[1].AsString := edtplaca.text;
SPgravaPlaca.Params[2].AsInteger := StrToInt(edtCodigo.Text);
SPgravaPlaca.Params[3].AsString := edtcliente.text;
SPgravaPlaca.Params[4].AsDate := StrToDate (FormatDateTime('DD/MM/YYYY', Date));
SPgravaPlaca.Params[5].AsString := cboxstatus.text;
SPgravaPlaca.Params[6].AsString := edtcarro.text;
SPgravaPlaca.Params[7].AsString := edtcor.text;
SPgravaPlaca.Params[8].AsString := edtano.text;
SPgravaPlaca.Params[9].AsString := mmobservacao.text;
SPgravaPlaca.Params[10].AsString := edtKm.text;
DMmain.SPgravaPlaca.ExecProc;
end;
end;
Alguém pode me ajudar por favor?
Guilherme
Curtidas 0