Olá,

Primeiro seria preciso dar uma olhada em seus joins pra ver como estão. Em
segundo, você já testou a propriedade PACKETRECORDS do clientDataset ? Seta
a propriedade FetchOnDemand para true e coloque aí um número de registros
que você deseja que o clientdataset vá buscar em sua base toda vez que for
necessário, tipo uns 200.


[]'s

Alexandre Oliveira Campioni
Analista de Sistemas
A-Tecnologia e Sistemas de Informacao Ltda.
Sao Joaquim da Barra - Sao Paulo - Brazil
[EMAIL PROTECTED]
 
-----Mensagem original-----
De: Paulo Geloramo [mailto:[EMAIL PROTECTED] 
Enviada em: quarta-feira, 26 de janeiro de 2005 10:05
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] ClientDataSet Carregar os dados com duas instruções SQl


Existe alguma forma de carregar os dados em um ClientDataSet com duas
instruções SQL?

Explicando:

Estou usando:
Delphi 7
Firebird 1.5.2
DBExpress
SQLDataSet+DataSetProvider+ClientDataSet

Usando apenas uma instrucao SQL no ClientDataSet, quando executa o
ClientDataSet.Open demora para retornar os dados, inviabilizando a
aplicação, porque a instrução SQL tem diversos JOIN.

Então fiz um teste fazendo em duas instruções SQL, ficou emeditado a
execução.

Um exemplo simplificado:
Na primeira instrução SQL traz apenas os nomes dos produtos.
Na segunda instrução SQL traz as quantidades de cada produto.

Na segunda instrução SQL estou fazendo um loop com os
comandos:
SQL.First;
While not ClientDataSet.Eof do
begin
    ClientDataSet.Edit;
    ClientDataSet.FieldByName('QUANTIDADE').AsInteger := Quantidade;
    ClientDataSet.Post;
    SQL.Next;
end;

Desta forma ficou imetiata para carregar os dados para o ClientDataSet, mas
existe um efeito colateral, pois assim, a quantidade vai para o Delta,
existe alguma forma de limpar o Delta, mantendo a quantidade no
ClientDataSet?

Existe alguma outra forma de carregar os dados para o ClientDataSet em duas
instruções SQL?

Alguma sugestão?

[]s
Paulo Geloramo




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a