Fórum DBXReader para TClientDataSet - Firemonkey #444009

26/05/2013

0

Olá pessoal!

Estou tendo problemas com o método TDBXClientDataSetReader.CopyReaderToClientDataSet no Firemonkey.

- Delphi XE4
- Firebird 2.5.2
- Tabela PRODUTO com cerca de 40mil registros.


Método no servidor:

function TSMTeste.GetProdutos: TDBXReader;
var
  FComm: TDBXCommand;
  AReader : TDBXReader;
begin
  if not cdsProduto.Active then
  begin
    SCContainer.SQLConnection.open;
    FComm := SCContainer.SQLConnection.DBXConnection.CreateCommand;
    FComm.CommandType := TDBXCommandTypes.DbxSQL;
    FComm.Text := 'Select * From PRODUTO';
    if not FComm.IsPrepared then
      FComm.Prepare;
    AReader := FComm.ExecuteQuery;

    TDBXClientDataSetReader.CopyReaderToClientDataSet( AReader, cdsProduto);
    cdsProduto.Open;
  end;
  Result := TDBXClientDataSetReader.Create(cdsProduto, False);
end;



Método Cliente:

var
  smc: TSMTesteClient;
  aReader: TDBXReader;
begin
  SQLConnection.Open;
  smc := TSMTesteClient.Create(SQLConnection.DBXConnection);
  try
    aReader := smc.GetProdutos;
    try
      if Assigned(aReader) then
        TDBXClientDataSetReader.CopyReaderToClientDataSet(aReader, cdsProdutos); {AQUI OCORRE O ERRO -> Access Violation}
    finally
      FreeAndNil(aReader);
    end;
    cdsProdutos.Open;
  finally
    smc.Free;
  end;


O erro
"Access Violation"
ocorre depois de algum tempo, o que dá a entender que poderia estar relacionado a algum tipo de campo ou valor.

Estou usando o Trial para teste.

Se alguém tiver uma ideia do que poderia estar ocorrendo (se eu tivesse o fonte do Delphi poderia debugar, mas é trial).

Obrigado.
Everton Garcia

Everton Garcia

Responder

Posts

27/10/2014

Luiz Bhering

Everton, boa noite !Mesmo erro comigo, você conseguiu descobrir o problema ?

Abraços !
Responder

Gostei + 0

27/10/2014

Everton Garcia

Olá Luiz! Boa noite!

Na época o problema era caso pelo ambiente de desenvolvimento. Havia instalado o XE4 em um PC com Windows XP, quando os requisitos mínimos indicavam Windows 7.

Bastou eu trocar o sistema operacional que funcionou.


Abraços.
Responder

Gostei + 0

20/04/2015

Anderson Domingos

Boa tarde, alguem ja trocou o dbexpress pelo Firedac, gostaria de saber como ficaria essa função function TSMTeste.GetProdutos: TDBXReader; no Firedac.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar