Fórum Debugar uma procedure #362288
08/08/2008
0
O Terceiro parametro dessa Procedure(O INSERT...) eu preciso capturar(Os valores dos parametros) e rodar no TOAD e ver o que está errado. Os valores dos parametros vêm da camada Cliente. Como faço? Fui claro?
Paulo
Curtir tópico
+ 0Posts
08/08/2008
Paulo
Gostei + 0
08/08/2008
Paulo
Gostei + 0
08/08/2008
Paulo
Gostei + 0
08/08/2008
Emerson Nascimento
Gostei + 0
09/08/2008
Paulo
exe
Gostei + 0
09/08/2008
Emerson Nascimento
abra o projeto do aplicativo servidor no Delphi, pressione F9. depois abra o aplicativo cliente ´por fora´. no momento que a procedure for requisitada, ela será interceptada pelo ´debuguer´ do Delphi.
Gostei + 0
11/08/2008
Paulo
Ela tem tres parâmetros. O terceiro é uma Instrução SQL que os ´parâmetros´ do Sql(não da procedure), vêm do cliente. É isso que eu quero pegar, saber o que está passando por ele. Como está dando um erro, gostaria de pegar esse SQL e rodar dentro do TOAD para ver onde está o erro. Se eu passar os mesmos parâmtero, mas como um CommandText do Cliente, não dá esse erro. E isso que eu quero debugar, e não uma procedure do delphi.
Gostei + 0
12/08/2008
Emerson Nascimento
se você estiver utilizando provider, pegue os valores no evento BeforeExecute.
Gostei + 0
12/08/2008
Paulo
Gostei + 0
12/08/2008
Emerson Nascimento
por exemplo:
procedure TDM.ProviderBeforeExecute(Sender: TObject; var OwnerData: OleVariant); var i: integer; lista: string; begin lista := ´´; with TSQLDataset(TDataSetProvider(Sender).DataSet) do if Params.Count > 0 then for i := 0 to Params.Count -1 do begin if lista <> ´´ then lista := lista + #13; lista := lista + Params[i].Name + ´ = ´ + Params[i].AsString; end; if lista <> ´´ then ShowMessage(lista); end;
daí, quando você criar seus providers, associe o evento BeforeExecute à esse procedimento.
dsp := TDatasetProvider.Create(X);
dsp.BeforeExecute := ProviderBeforeExecute;
etc...
(note que da forma que eu te passei, será exibida uma mensagem pelo aplicativo servidor)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)