Al González |
26-05-2011 19:26:42 |
Eres un ejemplo de forista paciente y decidido. Te dejas ayudar muy bien, eso da gusto. :)
Cita:
Empezado por RedVenom
(Mensaje 401560)
[...] ya solo me faltaria que solo apareciera dependiendo del mensaje de error recibido.
|
Sabes, los objetos EDatabaseError no contienen información adicional que te permita discernir el tipo de error que ocurrió, de hecho la clase EDatabaseError es prácticamente igual que Exception (al menos hasta Delphi 7). Miré el código del método virtual TCustomADODataSet.InternalPost (ADODB.pas) y descubro que la excepción arrojada por ADO es sustituida por un simple EDatabaseError. Ignoro si la excepción original u otro tipo de información puede ser consultada mediante otros caminos (como la interfaz ADODataSet1.Recordset o el objeto TADOConnection), pero es a través del propio mensaje de texto (analizando su contenido) como podrás averiguar el tipo de error ocurrido.
De hecho así lo tuve que hacer hace tiempo con dbExpress y Firebird, porque desafortunadamente en las excepciones no venían incluidos los códigos de error nativos del motor.
|