except on E:Exception do
Boa tarde!
Tem como colocar um loop dentro do except de um try tipo
Na verdade eu quero que enquanto tiver uma excecao fique incrementando 1 na variavel xRECNO ate achar um numero que nao tenha sido usado e executar a query.
Tem como colocar um loop dentro do except de um try tipo
try SQLQ_TABLE.ExecSQL; except on E:Exception do begin while E.Message <> ´´ do begin xRECNO := IntToStr(StrToInt(xRECNO) + 1); SQLQ_TABLE.ExecSQL; end; end; end;
Na verdade eu quero que enquanto tiver uma excecao fique incrementando 1 na variavel xRECNO ate achar um numero que nao tenha sido usado e executar a query.
try SQLQ_TABLE.ExecSQL; except on E:Exception do begin xRECNO := IntToStr(StrToInt(xRECNO) + 1); SQLQ_TABLE.ExecSQL; end; end;
Claudio_f
Curtidas 0
Respostas
Massuda
03/10/2006
Tente algo assim...
var Sucesso: Boolean; ... Sucesso := False; repeat // prepara para executar a SQL try SQLQ_TABLE.ExecSQL; Sucesso := True; except on E:Exception do xRECNO := IntToStr(StrToInt(xRECNO) + 1); end; until Sucesso;
GOSTEI 0
Marco Salles
03/10/2006
se eu entendi direito , uma maneira de fazer isto
uso o bloco finally para não haver estou de memória , pq presupoe-se que havera muitas exceções.
Mas o correto é , sabendo que alguma exceção , possa ocorrer , impedi-la
exceção , seria mesmo , quando algo ocorre-se fora do ´controle´
Um programa pode ter muitas blocos Try/finally , algumas instruçoes raises e pouquissimos blocos try/except
var deucerto:boolean; begin deucert0:=false; while not deucerto do begin try try SQLQ_TABLE.ExecSQL; deucerto:=True; except on E:Exception do xRECNO := IntToStr(StrToInt(xRECNO) + 1); finally if deucerto then Break end; end;
uso o bloco finally para não haver estou de memória , pq presupoe-se que havera muitas exceções.
Mas o correto é , sabendo que alguma exceção , possa ocorrer , impedi-la
exceção , seria mesmo , quando algo ocorre-se fora do ´controle´
Um programa pode ter muitas blocos Try/finally , algumas instruçoes raises e pouquissimos blocos try/except
GOSTEI 0
Claudio_f
03/10/2006
Valeu pessoal, deu certo com a dica do Massuda, e ele ficara em loop muito pouco, digamos umas duas ou tres vezes ateh achar um numero valido, e em muitos casos a excecao nem vai ocorrer.
Obrigado.
Obrigado.
GOSTEI 0