Erro de Invalid Data Packet
Tenho um Client DataSet em memória e agora tá dando erro de Invalid Data Packet. Não consegui evitar esse erro. O que eu posso fazer?
Pjava
Curtidas 0
Respostas
Pjava
05/09/2011
Esta é a função que está dando o erro de invalid Data Packet
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;//Nesta linha está dando o erro, ao carregar o ResultSet
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;GOSTEI 0
Pjava
05/09/2011
Mais uma coisa. Dá essa informação quando eu coloco o mouse em cima de LResult vem como UNASSIGNED e se dou um Ctrl+F7 para pegar algum valor, como é um array em qualquer posição do array que eu coloco vem essa mensagem:
Unknown type: 17
GOSTEI 0
Pjava
05/09/2011
Não resolvi ainda.
GOSTEI 0
Marco Salles
05/09/2011
CDSRetorno.Data := LResultSet;//Nesta linha está dando o erro, ao carregar o ResultSet
se esta dando erro nesta linha o conteudo do LResultSet nao é um Xml datapacker válido
O Xml do clientDataSet segue algumas normas especificas , é foi criado pelo pessoal do codegear (embarcadero) para uma troca de informaçoes do clientDataSet
se esta dando erro nesta linha o conteudo do LResultSet nao é um Xml datapacker válido
O Xml do clientDataSet segue algumas normas especificas , é foi criado pelo pessoal do codegear (embarcadero) para uma troca de informaçoes do clientDataSet
GOSTEI 0