Erro no Try/Except

12/12/2005

Falaeee galera..... blzra.

Estou com um problema, coloquei em uma parte do código fonte do programa um try except para verificar se o conteúdo de um edit eh string ou integer(Código abaixo):

Try
  StrToInt(edtBusca.Text);
  qryConsulta.ParamByName(´CODIGO´).AsString := ´¬´ + edtBusca.Text;
Except
  qryConsulta.ParamByName(´CODIGO´).AsString := edtBusca.Text + ´¬´;
End;


Acontece o seguinte: chega até a função StrToInt e para lá sai de tudo como se eu não tivesse digitado nada !!!!! :?: :?: :?:

Não sei mais o que fazer Alguem tem alguma sugestão???
Desde já Obrigado.


Alexferri

Respostas

12/12/2005

Eniorm

Olá, a função StrToInt RETORNA um inteiro a partir de uma string, então vc deve usar assim

var
  inteiro : integer;
...
try
   inteiro := StrToInt(edBusca.Text);
   qryConsulta.ParamByName(´CODIGO´).AsInteger := inteiro
...


vc pode tbm mudar o ParamByName(´CODIGO´).AsInteger para:

qryConsulta.ParamByName(´CODIGO´).AsString := edConsulta.Text;
...


para isso vc deve mudar o SQL:

... FROM TABELA
WHERE CAMPO LIKE :PARAMETRO


assim não havera erro caso o valor de edConsulta.Text for letras,...

abraço


Responder Citar

12/12/2005

Alexferri

E ai blz, Cara a minha intenção de colocar desse jeito eh a seguite, se der erro o ´¬´ do sql vai muda de lugar entendeu para que se eu digita um codigo o parametro fica assim ´¬123´ e se for letras ficara assim ´¬abc´.

só que sai do try except no strtoint, sai e não da erro nenhum.

c sabe o q eh isso sai sem da erro nenhum ???

Valeu pela resposta.


Responder Citar

12/12/2005

Adriano Santos

E ai blz, Cara a minha intenção de colocar desse jeito eh a seguite, se der erro o ´¬´ do sql vai muda de lugar entendeu para que se eu digita um codigo o parametro fica assim ´¬123´ e se for letras ficara assim ´¬abc´. só que sai do try except no strtoint, sai e não da erro nenhum. c sabe o q eh isso sai sem da erro nenhum ??? Valeu pela resposta.


Vc não tem nenhum componente ou função que esteja desviando o evento de erro? Tente fazer o seguinte.

Antes do StrToInt jogue o codigo:

   Application.onException := nil;



Responder Citar

12/12/2005

Massuda

...fica assim ´¬123´ e se for letras ficara assim ´¬abc´.
O código que você postou, no caso de não ser um número, resulta em ´abc¬´; se o campo estiver vazio, acho que seu código retorna apenas ´¬´. Se você estiver executando passo-a-passo, acho que a IDE não irá pular para o código entre o except...end, mas esse código é executado.


Responder Citar

12/12/2005

Alexferri

VALEU GALERA ERA ISSO MESMO O PASSO A PASSO NÃO ENTRAVA ENTRE O EXCEPT E O END, MAS TAVA EXECUTANDO VALEW MEMO FLW... :D


Responder Citar