Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error de Invalid Data Packet (https://www.clubdelphi.com/foros/showthread.php?t=75596)

Paulao 05-09-2011 22:22:48

Error de Invalid Data Packet
 
Tengo un Client DataSet en memoria y me lo da el error de Invalid Data Packet. Pero hizo muchas cosas y no he conseguido hacer funcionar mi CDS. Que puede ser este error?

Paulao 06-09-2011 13:58:18

Este es la funcion que me lo esta dande el error de Invalid Data packet
Código Delphi [-]
function TFrm_FrameworkBase.DoPADQryByWhere(AWhereVO: TDadosQryByWhere;
  CDSRetorno: TClientDataSet; Abortar, ExibeAguarde, ExibeMensagem: boolean): boolean;
var
  LExibeMensagem: TExibeMensagem;
  LResult_VO:     TRESULT;
  LResult:        OleVariant;
  LResultSet:     OleVariant;
  LFlags:         integer;
  LMensg:         string;
begin
  LExibeMensagem := nil;
  Result     := False;
  LResultSet := Unassigned;
  LResult_VO := TRESULT.Create;
  try
    LResult_VO.Clear;
    LResult    := LResult_VO.Serialize;
    try
      if ExibeAguarde then
        LExibeMensagem := TExibeMensagem.CreateMsg('Realizando consulta no Banco de Dados');
      CDSRetorno.Close;
      try
        if (FTipoConexao = 0) then
          FSocketSistema.AppServer.PADQryByWhere(AWhereVO.Serialize,
                                                 LResultSet,
                                                 LResult);
        end
        else
        begin
          if (Assigned(FDoPADQryByWhereCDSEvent)) then
          begin
            FDoPADQryByWhereCDSEvent(AWhereVO.Serialize,
                                     LResultSet,
                                     LResult);
          end;
        end;
        LResult_VO.Serialize := LResult;
        if LResult_VO.Codigo = 0 then
        try
          CDSRetorno.Data := LResultSet;
        except
          On E: Exception do
          begin
            LResult_VO.Codigo   := 99;
            LResult_VO.Mensagem := E.Message;
          end;
        end;
        Result := (LResult_VO.Codigo <> 99);
      except
        on E: Exception do
        begin
          LResult_VO.Codigo   := 99;
          LResult_VO.Mensagem := E.Message;
        end;
      end;
    finally
      if Assigned(LExibeMensagem) then
        LExibeMensagem.Free;
      if (LResult_VO.Codigo <> 0) and (ExibeMensagem) then
      begin
        if (LResult_VO.Codigo = 99) then
          LFlags := MB_ICONERROR
        else
          LFlags := MB_ICONWARNING;
        LMensg := LResult_VO.Mensagem;
        Application.MessageBox(PChar(LMensg),'Consulta ao Servidor',LFlags + MB_OK);
        if (Abortar) then
          Abort;
      end;
    end;
  finally
    try
      if (FResult_VO <> nil) then
      begin
        FResult_VO.Serialize := LResult_VO.Serialize;
      end;
    except
    end;
    LResult_VO.Free;
  end;
end;

Y esta es la linea del error

CDSRetorno.Data := LResultSet;

Paulao 06-09-2011 17:58:47

señores, mas una cosa, pues el valor de LResult es UNASSIGNED. Esto puede estar haciendo este problema?

DarKraZY 07-09-2011 10:35:40

Cita:

Empezado por Paulao (Mensaje 411047)
señores, mas una cosa, pues el valor de LResult es UNASSIGNED. Esto puede estar haciendo este problema?

Seguramente sea por eso. Alguna vez he realizado asignaciones de la propiedad Data enter diversos ClientDataSet y nunca he tenido problemas. En tu caso, si está vacío deberías controlarlo antes de asignarla.
Saludos!

Paulao 09-09-2011 19:02:02

No, no es esto. Tuvo mirando algunos ejemplos y tengo visto que poner para Unssigned tipos Variant es normal mismo. Creo que puede ser los datos o vazio o con alguno datos con errores.

Paulao 09-09-2011 21:57:22

Quando hago debug me viene esse mensaje:
Código Delphi [-]
Unknown type: 17
Como es un Vector, para qualquer posicion en el vector, me lo da el error.


La franja horaria es GMT +2. Ahora son las 04:37:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi