Dúvida com o IBSQL
É possível eu pegar o comando SQL de um IBSQL que é enviado para o Banco de dados mesmo quando passado parametrizado?
Ex.:
MinhaString := ´insert into Teste (CodTeste, TesteDsc) values (:Codigo, :Teste)´;
with IBSQL1 do
begin
Clear;
SQL.Add(MinhaString);
ExecQuery;
end;
Gostaria de ver a String completa que é gerada para enviar ao banco pelo Delphi.
Já tentei varios metodos e propriedades do IBSQL, mas não consegui a string completa.
Obs.:A finalidade disto é gerar um log de erro técnico se ocorrer um erro durante a inserção.
Agradeço se alguém puder me ajudar.
Ex.:
MinhaString := ´insert into Teste (CodTeste, TesteDsc) values (:Codigo, :Teste)´;
with IBSQL1 do
begin
Clear;
SQL.Add(MinhaString);
ExecQuery;
end;
Gostaria de ver a String completa que é gerada para enviar ao banco pelo Delphi.
Já tentei varios metodos e propriedades do IBSQL, mas não consegui a string completa.
Obs.:A finalidade disto é gerar um log de erro técnico se ocorrer um erro durante a inserção.
Agradeço se alguém puder me ajudar.
Mkoch
Curtidas 0
Respostas
Moliva
04/11/2003
Olá
Eu nunca tinha feito, mas fiz uns testes e acho que achei uma solução:
É preciso utilizar, além dos componetes normais de uma conexão Interbase, um IBSQLMonitor (normalmente paleta Interbase).
Adicione um memo para testar, vá até o evento onSql e digite algo parecido com isto :
[color=blue:c153ab2e20]Memo1.Lines.Add(EventText + ´ - ´ + DateTimeToStr(EventTime));[/color:c153ab2e20]
Vá até o IBDataBase ->TraceFlags -> tfQExecute ->True
(Teste marcar True em outras opções também)
A minha Query era
[color=blue:c153ab2e20]select * from DEPARTAMENTO
where DEPARTAMENTOID=:DEPID[/color:c153ab2e20]
O resultado no Memo será algo assim :
[color=darkblue:c153ab2e20][Application: Project1]
IBQuery1: [Execute] select * from DEPARTAMENTO
where DEPARTAMENTOID=:DEPID
DEPID = 99[/color:c153ab2e20]
espero ter ajudado e aguardo resposta,
[]s
Moliva
Eu nunca tinha feito, mas fiz uns testes e acho que achei uma solução:
É preciso utilizar, além dos componetes normais de uma conexão Interbase, um IBSQLMonitor (normalmente paleta Interbase).
Adicione um memo para testar, vá até o evento onSql e digite algo parecido com isto :
[color=blue:c153ab2e20]Memo1.Lines.Add(EventText + ´ - ´ + DateTimeToStr(EventTime));[/color:c153ab2e20]
Vá até o IBDataBase ->TraceFlags -> tfQExecute ->True
(Teste marcar True em outras opções também)
A minha Query era
[color=blue:c153ab2e20]select * from DEPARTAMENTO
where DEPARTAMENTOID=:DEPID[/color:c153ab2e20]
O resultado no Memo será algo assim :
[color=darkblue:c153ab2e20][Application: Project1]
IBQuery1: [Execute] select * from DEPARTAMENTO
where DEPARTAMENTOID=:DEPID
DEPID = 99[/color:c153ab2e20]
espero ter ajudado e aguardo resposta,
[]s
Moliva
GOSTEI 0