Erro no Try/Except

Delphi

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

Alexferri

Curtidas 0

Respostas

Eniorm

Eniorm

12/12/2005

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


GOSTEI 0
Alexferri

Alexferri

12/12/2005

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.


GOSTEI 0
Adriano Santos

Adriano Santos

12/12/2005

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;



GOSTEI 0
Massuda

Massuda

12/12/2005

...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.


GOSTEI 0
Alexferri

Alexferri

12/12/2005

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


GOSTEI 0
POSTAR