unit uoddface_estados_problema;

{$mode delphi}

interface

uses
  Classes, SysUtils, xmatdefs, ubtree, uoddface_table_nid;


(*
CREATE TABLE ofe_estados_problema (
    nid integer NOT NULL,
    nombre character varying(8) NOT NULL,
    descripcion text NOT NULL
);
ALTER TABLE public.ofe_estados_problema OWNER TO oddface;
);



  *)

  type

    { ofe_estado_problemar }

    ofe_estado_problemar = class( TRec_Nid )
      nombre, descripcion: string;

      constructor Create(
        nid: integer; nombre, descripcion: string );

      procedure WriteToBin( f: TStream );  override;
      constructor LoadFromBin( f: TStream ); override;

      // si self.nid = a.nid y retorna true y actualiza los valores de Self
      // si self.nid <> a.nid retorna false y no modifica Self
      function Update(a: TRec): boolean; override;

    end;



    { ofe_estado_problemars }

    ofe_estado_problemars = class( TTable_nid )
      constructor Create;
      constructor LoadFromBin( f: TStream );
    end;

implementation

{ ofe_estado_problemars }

constructor ofe_estado_problemars.Create;
begin
  inherited Create( ofe_estado_problemar );
end;

constructor ofe_estado_problemars.LoadFromBin(f: TStream);
begin
  inherited LoadFromBin( f, ofe_estado_problemar  );
end;


{ ofe_estado_problemar }

constructor ofe_estado_problemar.Create(nid: integer; nombre,
  descripcion: string);
begin
  inherited Create( nid );
  self.nombre:= nombre;
  self.descripcion:= descripcion;
end;


procedure ofe_estado_problemar.WriteToBin(f: TStream);
begin
  inherited WriteToBin( f );
  f.WriteAnsiString( nombre );
  f.WriteAnsiString( descripcion );
end;

constructor ofe_estado_problemar.LoadFromBin(f: TStream);
begin
  inherited LoadFromBin( f );
  nombre:= f.ReadAnsiString;
  descripcion:= f.ReadAnsiString;
end;

function ofe_estado_problemar.Update(a: TRec): boolean;
var
  a_: ofe_estado_problemar;
begin
  a_:= a as ofe_estado_problemar;
  if inherited Update(a_) then
  begin
    nombre:= a_.nombre
    descripcion:= a_.descripcion;
    result:= true;
  end
  else
    result:= false;
end;

end.

