Array
(
)

Erro no Try/Except

Alexferri
   - 12 dez 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):

#Código


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.


Eniorm
   - 12 dez 2005

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

#Código


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


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

#Código

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


para isso vc deve mudar o SQL:

#Código

... FROM TABELA
WHERE CAMPO LIKE :PARAMETRO


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

abraço


Alexferri
   - 12 dez 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.


Adriano Santos
   - 12 dez 2005


Citação:
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:

#Código


Application.onException := nil;



Massuda
   - 12 dez 2005


Citação:
...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.


Alexferri
   - 12 dez 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