DBEngine

Hola, mira aquí con una pregunta, me pasaron el código para capturar la excepción de un dbgrid para cuando se duplica una llave en una tabla, que es este...
procedure TDataCatalogos.CatalogoPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].Errorcode=9729 then
begin
// llave duplicada
MessageDlg('Clave repetida. Modifiquela. No se registrará.',
mtWarning,[mbOK], 0);
Abort;
end;
end;
Quisiera saber como puedo conseguir la lista de los códigos de errores para poder capturar cuando se quiere eliminar de una tabla con integridad referencial a otra.
De antemano mil gracias.
Respuesta
1
La opción que te propongo es hacernos una pequeña función para capturar los campos de un objeto EDBEngineError y con la ayuda de estos poder trabajar mejor en nuestra aplicación. Veamos, los campos más importantes de un objeto de este tipo son:
- ErrorCount: tipo Integer; indica el número de errores que está en el campo Errors, contando desde cero.
- Errors: tipo DBError; un conjunto de estructuras que tienen información de cada error específico generado. Se accede a cada registro por medio de un número índice de tipo Integer.
- Errors. ErrorCode: tipo DBIResult; indica el código de error BDE del registro actual en el campo Errors.
- Errors. Category: tipo Byte; categoría del error referenciado por el campo ErrorCode.
- ErrorSubcode: tipo Byte; suncódigo para el valor de ErrorCode.
- Errors. NativeError: tipo LongInt. Código del error devuelto por el servidor; si es cero, el error no es del servidor ya que las estructuras SQL también devuelven códigos que aparecen en este campo.
- Errors. Message: tipo TMessageStr; si el error es un error del servidor en este campo aparece el mensaje generado por el servidor, sino aparece un mensaje BDE.
Una vez visto esto, tendrás una aplicación más profesional y modular si te creas un módulo para el manejo de estos errores y le pasas el objeto EDBEngineError generado.
Como te comenté en la definición de los campos, Errors. ErrorCode contiene el código del error generado por el BDE, por tanto tenemos que recurrir a este administrador de bases de datos para ver cuales son sus errores. La siguiente dirección contiene un listado con todos los errores:
http://www.grupoalbor.com/Ficheros/ErroresBDE/ErrBDE.txt
Muchísimas gracias, lastima que la escala de puntuación no tenga un mayor rango pero yo en lo personal te doy un 10.
Gracias nuevamente y es probable que siga dando lata.
Saludos
Lina

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas