Ver Mensaje Individual
  #1  
Antiguo 04-05-2015
alexglez1255 alexglez1255 is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 86
Reputación: 11
alexglez1255 Va por buen camino
Error al postear un registro eliminado

Hola amigos del club delphi
A ver si alguno de ustedes tiene alguna idea por que me da error en la linea CDSCONTRAUNCLIENTE.POST.manejo campos anidados
donde la primera tabla CLIENTES TIENE UN CAMPO

object cdsUnClienteqryuncontra: TDataSetField
FieldName = 'qryuncontra'
end

EL CUAL USO PARA LOS CONTRATOS...LO DOY DE ALTA BIEN Y LO GRABO PARA OBTENER EL CODIGO AUTOMATICO POR MEDIO DE UN TRIGGER EN EL INTERBASE..

EL PROBLEMA ES QUE TENGO UN BOTON PARA QUITAR EL CONTRATO UNA VES DOY EL POST ME MANDA EL SIGUIENTE MENSAJE

'cdsContratuncliente: Cliendataset not in edit or insert mode' pero si notan en el codigo si la pongo en edit mode, y para asegurarme pongo un case el cual me confirma que efectivamente esta en edit mode.. me explico..? tengo ya como 4 dias y no logro saber cual es el error...muchas gracias por su gran ayuda
Código Delphi [-]
procedure Taltadecontratos.BtquitarcontratoClick(Sender: TObject);
 var
   estadotabla:string;
 begin
  If Application.messagebox('Seguro que desea cancelar contrato ?','ATENCION !!',mb_iconquestion or mb_yesno)=id_yes
   then  with LogicaNegocio do
     begin
       If Contratoguardado=True then
        begin
           cdsUnCliente.Open;
           cdsUnCliente.Edit;
           cdsContratUnCliente.Open;
           cdsContratUnCliente.Edit;
            case cdsContratUnCliente.State  of
             dsInactive:estadotabla:='inactiva';
             dsBrowse    :estadotabla:='en estado browse';
             dsEdit      :estadotabla:='en edit';
             dsInsert    :estadotabla:='en insert mode';
             dsSetKey    :estadotabla:='solo busqueda';
             dsCalcFields:estadotabla:='dscalcfields';
             dsFilter   :estadotabla:='dsfilter';
             dsNewValue   :estadotabla:='dsnewvalue';
             dsOldValue   :estadotabla:='Dsoldvalue';
             dsCurValue   :estadotabla:='dsCurValue';
             dsBlockRead :estadotabla:='dsBlockRead';
             dsInternalCalc:estadotabla:='dsInternalCalc';
             dsOpening  :estadotabla:='dsOpening';
            Else
              estadotabla:='ninguna de las opciones';
            End;
            ShowMessage('El estado de la tabla es :'+estadotabla);
           If cdsContratUnCliente.Locate('Cod_contrato',IntToStr(CodContratoNuevo),[loCaseInsensitive]) then
             begin
               cdsContratUnCliente.delete;
               cdsContratUnCliente.Post;
               cdsContratUnCliente.ApplyUpdates(0);
               modulodatos.IBTransaction1.Commit;
               btnBuscarCte.Enabled:=True;
               BtDardealtaacliente.Enabled:=True;
               insertarcontrato:=False; // desactivamos bandera de contrato insertado
               Btinsertcontrato.Enabled:=True;
   //Contratoguardado:=False;
               Btquitarcontrato.Enabled:=False;
               logicanegocio.cdsArticContUnCliente.close;
               Btguardarcontrato.Enabled:=False;
             end
           Else  cdsContratUnCliente.delete;
        end;
     end;
  end;

Última edición por nlsgarcia fecha: 04-05-2015 a las 07:58:07. Razón: Sintaxis Delphi
Responder Con Cita