Stored Procedure com DBExpress
13/08/2004
0
Estou começando a utilizar o componente DBExpress com Oracle. Alguém poderia me informar como faço a chamada de uma Stored Procedure? Pois estou utilizando o TSimplesDataset.
PERIODO.Close;
PERIODO.Params.ParamByName(´parperiodo´).AsString:=EDIT_PERIODO.Text;
PERIODO.Params.ParamByName(´parexercicio´).AsString:=EDIT_EXERCICIO.Text;
PERIODO.Params.ParamByName(´paremp´).AsString:=EDIT_EMPRESA.Text;
PERIODO.Params.ParamByName(´pardatainicial´).AsDate:=DataInicial.Date;
PERIODO.Params.ParamByName(´pardatafim´).AsDate:=DataFim.Date;
PERIODO.Execute;
Assim, apresenta um erro ´Cursor not returned from query´.
Hcnc
Posts
13/08/2004
Welington
Nunca utizei o ParambyName, sempre usei o FindParam.
Ex.:
PERIODO.Params.FindParam(´parperiodo´).AsString:=EDIT_PERIODO.Text;
Mas este dois com certeza devem ter o mesmo desempenho.
16/08/2004
Hcnc
O componente TSimplesDataset do DBExpress não possui ExecProc. A sua chamada da procedure com banco Oracle foi com qual componente?
16/08/2004
Hcnc
O componente TSimplesDataset do DBExpress não possui ExecProc. A sua chamada da procedure com banco Oracle foi com qual componente?
16/08/2004
Welington
16/08/2004
Hcnc
Já troquei de componente e com relação ao erro anterior era o parametro type do params do componente que estava ´PtInput´. Parametrizei para PtInputOutput e eliminei o erro. Mas, apresentou outro erro. Tenho cinco parametro (Periodo:ftString; Exercicio:ftString; Emp:ftBCD; Datainicial:fttimeStamp; Datafim:fttimeStamp), quando passo os parametros e executo ´ExecProc´ apresenta o arro de Action Violation at Adress. Vc já passou por um erro assim? Também tentei colocar os parametros todos ftString, mas não funcionou! Que acha?
Hugo
16/08/2004
Welington
StoredProc.ParamByName(´Periodo´).Value := Edit1.Text;
StoredProc.ParamByName(´Exercicio´).Value := Edit2.Text;
StoredProc.ParamByName(´Emp´).Value := StrToFloat(Edit3.Text);
StoredProc.ParamByName(´DataInicial´).Value := StrToDateTime(Edit4.Text);
StoredProc.ParamByName(´DataFinal´).Value := StrToDateTime(Edit5.Text);
Verifique se os campos do formulário possuem a propriedade MaxLength maior do que os parâmetros na StoredProc.
Se não der certo envie a sua storedproc.
Tenho um exemplo de como usar StoredProc, mas com o Firebird. Se vc estiver interessado, envie uma mensagem particular passando o seu e-mail.
Clique aqui para fazer login e interagir na Comunidade :)