Erro ao executar uma procedure
Tenho um componente TStoreProc defino o alias, o procedimento que eu quero, os parametros mas quando faço o SPAtualiza.ExecProc o debugger me retorna uma erro de ´Operation not applicable´. Estou usando o ORACLe como SGBD.
Falta alguma coisa. :?: :?: :?:
Valeu....................................................................................
Falta alguma coisa. :?: :?: :?:
Valeu....................................................................................
Luisfernando
Curtidas 0
Respostas
Facundo
25/01/2004
Meu caro, vc poderia publicar o código da procedure?
GOSTEI 0
Luisfernando
25/01/2004
CREATE OR REPLACE
PROCEDURE ATUALIZA_CR (NUM IN ALUNO.COD¬TYPE)
IS
MALUNO DISCIP.MEDIA¬TYPE;
CALUNO DISCIP.CREDT¬TYPE;
TOTAL DISCIP.CREDT¬TYPE;
CURSOR MCALUNO IS
SELECT MEDIA, CREDT
FROM DISCIP
WHERE COD_ALUNO = NUM;
BEGIN
TOTAL := 0;
FOR REC IN MCALUNO LOOP
TOTAL := TOTAL + (REC.MEDIA * REC.CREDT);
END LOOP;
SELECT SUM(CREDT) INTO CALUNO
FROM DISCIP
WHERE COD_ALUNO = NUM;
UPDATE ALUNO
SET CRA = TOTAL / CALUNO
WHERE COD = NUM;
UPDATE ALUNO
SET CRED = CALUNO
WHERE COD = NUM;
END;
/
PROCEDURE ATUALIZA_CR (NUM IN ALUNO.COD¬TYPE)
IS
MALUNO DISCIP.MEDIA¬TYPE;
CALUNO DISCIP.CREDT¬TYPE;
TOTAL DISCIP.CREDT¬TYPE;
CURSOR MCALUNO IS
SELECT MEDIA, CREDT
FROM DISCIP
WHERE COD_ALUNO = NUM;
BEGIN
TOTAL := 0;
FOR REC IN MCALUNO LOOP
TOTAL := TOTAL + (REC.MEDIA * REC.CREDT);
END LOOP;
SELECT SUM(CREDT) INTO CALUNO
FROM DISCIP
WHERE COD_ALUNO = NUM;
UPDATE ALUNO
SET CRA = TOTAL / CALUNO
WHERE COD = NUM;
UPDATE ALUNO
SET CRED = CALUNO
WHERE COD = NUM;
END;
/
GOSTEI 0
Facundo
25/01/2004
Meu caro, sugiro que vc dê uma olhada no guia(sobre plsql) que está no link www.cin.ufpe.br/~mfl/noviss/sql-turma10¬5B1¬5D.ppt. Sempre que tentar compilar uma procedure e acontecer um erro, vc pode ver os detalhes com o comando ´show errors´.
GOSTEI 0
Luisfernando
25/01/2004
No SQL PLUS a procedure executa normalmente ela está sem erros.
Mas no delphi ela nao executa e seu parametros estão certos.
Mas no delphi ela nao executa e seu parametros estão certos.
GOSTEI 0
Motta
25/01/2004
rode assimno oracle e tente ver o erro
procedure TForm1.Button1Click(Sender: TObject);
begin
try
StoredProc1.ExecProc;
except
on e:exception do
begin
Showmessage(e.message);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
try
StoredProc1.ExecProc;
except
on e:exception do
begin
Showmessage(e.message);
end;
end;
end;
GOSTEI 0
Drlecter
25/01/2004
Quem postou essag mensegem fui eu mas nao sei o que aconteceu e meu login nao existiu mais e tive que criar outro....
ms o erro é ´Operation not aplicable´.
Valeu................
ms o erro é ´Operation not aplicable´.
Valeu................
GOSTEI 0
Motta
25/01/2004
Operation not aplicable
Parece um problema de conecção , algo entre:
Versão de Client Oracle.
Versão/Conf. de dbe (se for o caso)
Drive ODBC (se for o caso)
Parece um problema de conecção , algo entre:
Versão de Client Oracle.
Versão/Conf. de dbe (se for o caso)
Drive ODBC (se for o caso)
GOSTEI 0
Rfpsatin
25/01/2004
seguinte, pelo q vi vc nao esta passando o paramentro p./ a procedure via delphi!!!
tenta algo assim, estou sem o delphi aqui p/ testar a sintaxi
procedure.params[0].value:=teuParametro
depois vc da um exec
blz?
tenta algo assim, estou sem o delphi aqui p/ testar a sintaxi
procedure.params[0].value:=teuParametro
depois vc da um exec
blz?
GOSTEI 0