Ver Mensaje Individual
  #16  
Antiguo 17-05-2007
Avatar de Goyo
Goyo Goyo is offline
Miembro
 
Registrado: feb 2006
Posts: 89
Reputación: 19
Goyo Va por buen camino
Unhappy a ver si ahora si me puedo explicar... y mil disculpas

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);
    Procedure midberror(DataSet: TDataSet; E: EDatabaseError);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  DM: TDM;
  Const
  eKeyViol = 9729;
  eRequiredFieldMissing = 9732;
  eForeignKey = 9733;
  eDetailsExist = 9734;
  eSqlGralerror = 13059;
  eInvalidTime = 10058;
  eInvalidDate = 75;
  EinvalidDateTime=10060;
  eRegisterLocked= 10241;
implementation
{$R *.dfm}
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;
if (E as EDBEngineError).Errors[0].Errorcode = eInvalidDateTime then
    begin
      Application.MessageBox('Formato de fecha-hora incorrecto.','Atención',mb_Ok + mb_IconQuestion);
      Abort;
    end;
   //campo en blanco
if (E as EDBEngineError).Errors[0].Errorcode =   eSqlGralerror then
    begin
      Application.MessageBox('Imposible dar alta hay un campo requerido vacío.','Atención',mb_Ok + mb_IconQuestion);
      Abort;
    end;
  //Registro bloqueado
if (E as EDBEngineError).Errors[0].Errorcode =   eRegisterLocked then
    begin
      Application.MessageBox('Imposible hacer modificaciones registro bloqueado por otro usuario.','Atención',mb_Ok + mb_IconQuestion);
      Abort;
    end;
end;
procedure TbEmpleadosPostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
begin
  midberror(TBEmpleados,e);
end;
end.
aqui te muestro el codigo completo de mi Modulo.pas (es donde tengo las tablas que operan el sistema) y los errores que me marcan son los siguientes:
[Hint] Modulo.pas(67): Value assigned to 'mierror' never used
[Error] Modulo.pas(120): Undeclared identifier: 'TbEmpleados'
[Error] Modulo.pas(35): Unsatisfied forward or external declaration: 'TDM.TbEmpleadosPostError'
[Error] Modulo.pas(37): Unsatisfied forward or external declaration: 'TDM.midberror'
[Fatal Error] Cardex.pas(162): Could not compile used unit 'Modulo.pas'
...

y en lo que respecta a esta parte del codigo a que te refieres o a donde lo pongo:
Código Delphi [-]
//aqui capturamos el error de bloqueo
procedure TdmoPalma.CliEditError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
midberror(cli,e);
end;

procedure TdmoPalma.CliPostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
midberror(cli,e);
end;
que significa esta funcion TdmoPalma.CliEditError....

Cli = si no me equivoco es el nombre de la tabla TbEmpleados
TdmoPalma = ?
CliEditError = ?
CliPostError = ?

Espero tu ayuda y de antemano muchas gracias por
contestar mis mensajes...
gracias

Última edición por Goyo fecha: 17-05-2007 a las 19:47:44.
Responder Con Cita