Hola.
Cita:
Empezado por Angel.Matilla
¡Hombre! Me parece bastante evidente:
...
|
Te aseguro que no lo era tanto para mí...
Es decir que queres traducir los mensajes de error, a otra forma que consideras que tus usuarios entenderán mejor.
Bueno, para eso no veo otra opción que hacerlo manualmente evaluando todos los
GDSCODE, me refiero a algo similar a este ejemplo:
Código PHP:
if (E->ClassNameIs("EIBInterBaseError")) {
String Msg;
int gdsc = (static_cast<EIBInterBaseError*>(E))->IBErrorCode;
switch (gdsc) {
...
case 335544578: Msg = "Columna desconocida."; break;
case 335544579: Msg = "Error interno."; break;
...
}
ShowMessage(Msg);
Cita:
Empezado por Angel.Matilla
...encontré una respuesta; es para Delphi y en principio debería ser fácil de adaptar a Builder. Pero me dejó perplejo parte del código que hay:
Código:
uses IB;
...
try
...
insertquery.ExecSQL;
except on E:Exception do
case EIBInterBaseError(E).IBErrorCode of
$14000019: ShowMessage('Deadlock');
$14000888:// se produjo la excepcion ERR_NO_TITULO
ShowMessage('El título no puede estar vacio');
end;
Esos valores 14000019 y 14000888 he estado buscándolos en el listado de errores de FB y no existen por lo que no sé como tratarlos.
|
$14000019(Delphi) = 0x14000019(C++) =
335544345(decimal)
Código:
SQLCODE | GDSCODE | SYMBOL TEXT
--------+-----------+---------------+-------------------------------------
-901 | 335544345 | lock_conflict | Lock conflict on no wait transaction
$14000888 = 0x14000888 =
335546504 (no existe como código de error en Firebird)
Saludos