Cita:
Empezado por Lepe
2.- Usar bloques try ... excepts, pero permitir que dicha excepción se lance de nuevo.
|
Hola,
Yo he elegido este método, el problema que tengo es que antes de mostrar el mensaje de la excepción al usuario la ejecución de mi programa se corta siendo necesario darle F9 devuelta para que recién ahí se muestre el mensaje y queden los objetos en el estado que yo quiero... ¿hay algúna forma de que esto no ocurra?
este es el código que produce la excepción:
Código Delphi
[-]try
MDOTransaction1.StartTransaction;
MDODataset1.QInsert.params.ByName('CANTI').AScurrency := 1;
MDODataset1.QInsert.Params.ByName('NUMERO_CONTRATO').asInteger := Ncontrato;
MDODataSet1.QInsert.Params.ByName('CATEGORIA').ASString := RXDBGrid1.Fields[1].AsString;
MDODataSet1.Qinsert.Params.ByName('TARIFA').ASsTring := RXDBGrid1.Fields[0].AsString;
MDODataSet1.QInsert.Params.ByName('PRECIO_UNITARIO').asCurrency := RXDBGRID1.Fields[4].ASCurrency;
MDOQuery1.Close;
IF stt[1] = 'K' THEN MDOQuery1.SQL.Strings[14] := 'and tarifas.tipo <> '+ quotedStr('KM');
if stt[1] = 'C' then MDOQuery1.SQL.Strings[15] := 'and tarifas.tipo <> '+ quotedStr('Combustible');
MDOdataset1.QInsert.ExecQuery;
MDOdataset1.open;
MDOquery1.open;
except
MDOTransaction1.Rollback;
MDOdataset1.Open;
MDOquery1.Open;
raise;
end;
'MDOdataset1.QInsert.ExecQuery ' es la linea que produce la excepción, como dije antes se corta la ejecución y me da un mensaje de el componente y me disgusta que eso ocurra quiero que solo se notifique el mensaje de error al usuario....
Gracias