Ver Mensaje Individual
  #14  
Antiguo 16-05-2007
Avatar de Goyo
Goyo Goyo is offline
Miembro
 
Registrado: feb 2006
Posts: 89
Reputación: 21
Goyo Va por buen camino
donde debo poner el codigo que indicas...

lo que me indicaste lo puse dentro del Modulo de Datos

Código Delphi [-]
unit Modulo;
interface
uses
  SysUtils, Classes, DB, DBTables;
type
  TDM = class(TDataModule)
    DsEmpleados: TDataSource;
    TbEmpleados: TTable;
    Database: TDatabase;
    DsDepartamentos: TDataSource;
    DsPuestos: TDataSource;
    TbDepartamentos: TTable;
    TbPuestos: TTable;
    DsDirecciones: TDataSource;
    TbDirecciones: TTable;
    DsEspecialidades: TDataSource;
    TbEspecialidades: TTable;
    TbDireccionesId_Direccion: TStringField;
    TbDireccionesDireccion: TStringField;
    TbDepartamentosId_Departamento: TStringField;
    TbDepartamentosId_Direccion: TStringField;
    TbDepartamentosDepartamento: TStringField;
    TbPuestosId_Puesto: TStringField;
    TbPuestosPuesto1: TStringField;
    TbPuestosPuesto2: TStringField;
    TbPuestosSueldoDiario: TFloatField;
    TbPuestosDespensa: TFloatField;
    TbEspecialidadesId_Especialidad: TStringField;
    TbEspecialidadesEspecialidad: TStringField;
    procedure TbEmpleadosPostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  DM: TDM;
implementation
{$R *.dfm}
 
procedure TDM.TbEmpleadosPostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
 midberror(TbEmpleados,E);
end;
end.

me cree un archivo unit y lo grabe con el nombre de midberror y a su vez puse el llamado dentro del Modulo de Datos.

unit Modulo;
interface
uses
SysUtils, Classes, DB, DBTables, midberror;

y la verdad no se donde escribir el demas codigo (osea este) porque me marco errores...
Código Delphi [-]
unit midberror;

Procedure midberror(DataSet: TDataSet; E: EDatabaseError);
Const
  eKeyViol = 9729;
  eRequiredFieldMissing = 9732;
  eForeignKey = 9733;
  eDetailsExist = 9734;
  eSqlGralerror = 13059;
  eInvalidTime = 10058;
  eInvalidDate = 75;   
  EinvalidDateTime=10060;
  eRegisterLocked= 10241;
 
implementation
 
Procedure midberror(DataSet: TDataSet; E: EDatabaseError);
var
mierror:double;
begin
mierror:= (E as EDBEngineError).Errors[0].Errorcode;

if (E is EDBEngineError) then
    if (E as EDBEngineError).Errors[0].Errorcode = eKeyViol then
    begin
      Application.MessageBox('Imposible dar alta ese registro ya existe','Atención',mb_Ok +
mb_IconQuestion);
      Abort;
      end;
if (E as EDBEngineError).Errors[0].Errorcode = eRequiredFieldMissing then
    begin
      Application.MessageBox('Imposible dar alta hay un campo vacio.','Atención',mb_Ok +
mb_IconQuestion);
      Abort;
      end;
      if (E as EDBEngineError).Errors[0].Errorcode = eInvalidTime then
    begin
      Application.MessageBox('Formato de hora incorrecto.','Atención',mb_Ok +
mb_IconQuestion);
      Abort;
      end;
if (E as EDBEngineError).Errors[0].Errorcode = eInvalidDate then
    begin
      Application.MessageBox('Formato de fecha incorrecto.','Atención',mb_Ok +
mb_IconQuestion);
      Abort;
      end;
gracias de antemano....
Responder Con Cita