Erro com Stored Procedure

Firebird

31/08/2005

Eu tenho essa procedure que funciona qndo eu quero inserir ou alterar os dados, mas qndo eu quero excluir ele da a seguinte mensagem

[color=blue:4c3da8526c]REQUIRED PARAM NOT SET[/color:4c3da8526c]

Eu executo ela apartir do delphi.
O que eu devo fazer?


CREATE PROCEDURE SP_CFGUSUARIOS (
OPERACAO INTEGER,
NOM VARCHAR(40),
LOG VARCHAR(20),
SEN VARCHAR(10),
SIT INTEGER,
FUN INTEGER,
COD INTEGER)
RETURNS (
VARLOGIN VARCHAR(20),
VARSENHA VARCHAR(10),
VARNOME VARCHAR(40),
VARSITUACAO INTEGER,
VARFUNCAO INTEGER)
AS
begin
-- Insere dados do usuário
if (:OPERACAO = 1) then
begin
Insert Into CFGUSUARIOS (NOME,LOGIN,SENHA,SITUACAO,FUNCAO,CODIGO)
VALUES (:NOM,:LOG,:SEN,:SIT,:FUN,:COD);
end
-- Atualiza dados do usuário
if (:OPERACAO = 2) then
begin
Update CFGUSUARIOS set
NOME = :NOM,
LOGIN = :LOG,
SENHA = :SEN,
SITUACAO = :SIT,
FUNCAO = :FUN
Where CODIGO = :COD;
end
-- Apaga dados do usuário
if (:OPERACAO = 3) then
Delete From CFGUSUARIOS where (CODIGO = :COD);

-- Seleciona dados do usuário
if (:OPERACAO = 4) then
select NOME,LOGIN,SENHA,SITUACAO,FUNCAO from cfgusuarios where (CODIGO = :COD)
into :VARNOME,:VARLOGIN,:VARSENHA,:VARSITUACAO,:VARFUNCAO;

suspend;
end

[color=green:4c3da8526c]Movido de Delphi para Interbase/Firebird[/color:4c3da8526c]


Blbacelar

Blbacelar

Curtidas 0

Respostas

Rjun

Rjun

31/08/2005

Você esta passando todos os parametros que a stp requer?


GOSTEI 0
Blbacelar

Blbacelar

31/08/2005

Para excluir eu faço assim:

with IBStoredProcedure do
begin
ParamByName(´OPERACAO´).AsInteger:= 3;
ParamByName(´COD´).AsString:= edtCodigo.Text;
ExecProc;
end;


GOSTEI 0
Rjun

Rjun

31/08/2005

É o seguinte: sempre faço uma STP para incluir, outra para excluir e outra para alterar.

No seu caso, você deve passar todos os parâmetros, mesmo para fazer uma exclusão.


GOSTEI 0
POSTAR