[delphi-br] ClientDataSet com comportamento estranho

2010-08-27 Por tôpico Ricardo Rocha
Olá a todos, estou enfrentado difícil de solucionar, pelo menos pra mim... Vou 
colocar o código de como estou trabalhando com o clientdataset, quem puder me 
ajudar agradeço.

Resumo do problema: Tenho um formulário de pedido que trabalho com duas tabelas 
no firebird que são: (pedido e pedido_item) eu uso stored procedure para 
insert e update nessas tabelas. No form de cadastro de pedido tenho um dbgrid 
que é adcionado os items do pedido. Quando eu registro um novo pedido ele salva 
noramalmente, ai logo em seguida se eu clicar em localizar um pedido e 
seleciona-lo e logo em seguido clicar em novo, eu começo a inserio o produto 
ele 
puxa os produtos que foi inserido no pedido anterior não estou entendo mais 
nada. Vou postar algus código, se alguém já passou por isso e puder me ajudar. 
Agradeço.

{: Procedure para inserir o pedido e os items} 
procedure TDMPrincipal.InsertPedido;
var
  idPed: Integer;
begin
  // verifica se escolheu produtos
  if cdsPedidoItem.IsEmpty then
  raise Exception.Create('É necessário escolher os produtos!');

idPed:= qSequence.FieldByName('VLRSEQ').AsInteger + 1;

Start;
  // Adiciona o pedido
  try
with spPedido do
begin
  Params[0].AsInteger:= cdsPedidoPED_COD.AsInteger;
  Params[1].AsInteger:= cdsPedidoFUNC_COD.AsInteger;
  Params[2].AsDate:= cdsPedidoPED_DATA.AsDateTime;
  Params[3].AsBCD:= cdsPedidoItemTOTALGERAL.AsVariant;
  Params[4].AsInteger:= cdsPedidoFORN_COD.AsInteger;

  ExecProc;
  Commit;
  //idPed:= Params[4].AsInteger;
end;
  Except
Rollback;
  end;

  // Adiciona os items
  try
Start;
cdsPedidoItem.First;
while not cdsPedidoItem.Eof do
begin
  with spPedidoItem do
  begin
Params[0].AsInteger:= idPed;
Params[1].AsInteger:= cdsPedidoItemPROD_COD.AsInteger;
Params[2].AsInteger:= cdsPedidoItemQUANTIDADE.AsInteger;
Params[3].AsBCD:= cdsPedidoItemVALOR.AsCurrency;
ExecProc;
  end;
  cdsPedidoItem.Next;
end;
Commit;
  Except
DeletePedido(idPed);
Rollback;
  end;
end;

No evendo afterpost do clientdataset eu chamo essa procedure;
No evendo onnewrecord eu para 0 para o código do pedido.


No formulário de pedido tenho os botões de novo salvar alterar localizar

Novo:
  DataSource1.DataSet.Open;
  DataSource1.DataSet.Insert;

Salvar:
  {: salvo as dados se os campos estiverem preenchidos}
  if FieldsWrithe(DataSource1) and (DataSource1.State in [dsEdit, dsInsert]) 
then
  begin
DMPrincipal.cdsPedido.Post;
MessageDlg(MSG_OK, mtInformation, [mbOK], 0);
  end;
  DMPrincipal.cdsPedido.Close;
  DMPrincipal.cdsPedidoItem.Close;

Alterar:
  {: habilita/desabilita os componentes e verifica permissões/restrições }
  if not DataSource1.DataSet.IsEmpty then
  begin
DataSource1.DataSet.Edit;
DataSource2.DataSet.Edit;
EnableDisableControls(True);
  end
  else
  begin
raise Exception.Create('Nenhum pedido foi selecionado!');
  end;

Localizar:
  {: verifica se esta em modo de edição ou inserção}
  if DataSource1.State in [dsEdit, dsInsert] then
case MessageDlg('Deseja salvar as alterações realizados no Cadastro?', 
mtConfirmation, [mbYes,mbNo,mbCancel], 0) of
 mrYes: btnSalvar.Click;
 mrNo: DataSource1.DataSet.Cancel;
end
  else
Application.CreateForm(TfrmBuscaPedido, frmBuscaPedido);
frmBuscaPedido.ShowModal;

Vlw Pessaol... Ajudem ai please

 Ricardo Messias da Silva Rocha
Bacharel em Ciência da Computação


  

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-08-03 Por tôpico Leandrooooo Nunes
bando de filha da puta... arrombados... deixa eu sair desta merda de 
grupo

To tentando sair desse inferno de grupo ja mandei e-mail pra todos os mails 
e nada.

num tem moderador nessa merda.

vo comeca a manda foto porno hein!

kct

--
From: Fabricio Colombo fabricio.colombo@gmail.com
Sent: Friday, July 30, 2010 8:41 AM
To: delphi-br@yahoogrupos.com.br
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Vc pode passar o where que retorna apenas 50 registros direto para a 
 query.
 É o que faço aqui pra retornar apenas 1 registro, não uso o PacketRecord,
 pois o sql também é executado rapidamente por usar indices e retornar 
 poucos
 dados.

 Em 27 de julho de 2010 09:36, Eny Urias enyur...@yahoo.com.br escreveu:



 Não quero mesmo trazer todos os registros do pai... Mas, se o cliente
 quiser
 fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim 
 eu
 nao
 quero trazer tudo...

 Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e 
 abro
 o
 filho atraves do parametro enviado pelo pai... dessa forma ele só me traz
 os
 filhos do pai onde está o ponteiro.

 Tem alguma idéia melhor?
 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Fabricio Colombo 
 fabricio.colombo@gmail.comfabricio.colombo.mva%40gmail.com
 

 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
 Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]


 Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
 conheço nenhum DataSet que faça diferente. O que vc queria é que ele
 fizesse
 *Lazy Loading*.
 ** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase 
 nunca
 é

 viável carregar todos os dados do pai, principalmente se utilizar 
 DataSnap,
 e portanto, isso foi abolido no nosso sistema.

 Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 
 10
 mil até mais de 4 milhões de registros, então temos que fazer o sistema
 pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira,
 mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
 registro por vez, e é o suficiente, ele não precisa de todos os 
 registros.

 Nosso sistema nem tem navegador de registros e isso não dificulta o
 trabalho
 do usuário, pois vc tem que suprir essa limitação com pesquisas mais
 ricas
 e agéis.

 Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir 
 essa
 tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
 todos os registros da mesma maneira, só que de modo mais custoso?

 Como vc controla a transação, visto que aparentemente vc não usa mais
 Nested
 Datasets?

 Abraços,

 Fabricio

 Em 26 de julho de 2010 19:45, Eny Urias 
 enyur...@yahoo.com.brenyurias%40yahoo.com.br
 escreveu:

 
 
  Vamos fazer o seguinte
 
  Utilize uma ferramenta tracer e depois me fala o que acontece no 
  momento
 em
  que
  vc abre o cds Pai.
 
  No meu acontece assim: vamos imaginar uma tabela pai com 100.000
  registros... E
  uma tabela filho com 10 itens para cada pai... Então o programa vai
 trazer
  na
  memória 1.000.000 certo?
 
  Eu quero carregar todos os registros do cds pai e, somente trazer os do
  filho,
  quando o ponteiro estiver no pai.. entendeu? Foi aí que eu comecei a
  utilizar o
  evento AfterScroll...
 
 
  --
  Eny Trova Urias
 
  Somos o que repetitivamente fazemos, portanto, a excelência não é um
  feito, mas
  um hábito- Aristóteles
 
  
  De: Andre Yahoo gyncow...@yahoo.com.br 
  gyncowboy%40yahoo.com.brgyncowboy%
 40yahoo.com.br
 
  Para: delphi-br@yahoogrupos.com.br 
  delphi-br%40yahoogrupos.com.brdelphi-br%
 40yahoogrupos.com.br

  Enviadas: Sábado, 24 de Julho de 2010 20:33:03
  Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]
 
  Cara Eny,
 
  Não entendi o porque do problema, uma vez que ao carregar o registro
  pai, você vai estar filtrando ele, o que retornará para o registro
  mestre somente um registro, já para o filho você estará retornando
 todos
 
  os detalhes que estão vinculados com este registro mestre.
 
  Mas você disse: quando o CDS carrega os registros do Master, ele tras
  também, para cada registro pai, todos os registros do filho, quer 
  dizer
  que estava retornando todos os mestres ? Para a programação C/S você
  retorna somente um registro mestre, que é o que o usuário vai 
  trabalhar
  nele, não precisa retornar todos os registros. Se era essa a 
  situação,
 o
 
  problema era estrutural e com erro de programação, não do componente
 ou
  da maneira com os mesmos eram usados.
 
  Se não for isso que acontecia e puder explicar melhor, pois acho que
  muitos como eu podem não ter entendido a situação que ocorria muito
 bem.
 
  Atenciosamente,
 
  André Luis da

RES: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-08-03 Por tôpico Claudiney Cogo
Moderador eu acredito que tenha sim, mas até agora tivemos apenas pessoas
educadas no grupo e não foi necessário a intervenção dele.

 

E também, para qualquer pessoa com um mínimo de conhecimento em informática,
sair do grupo é muito fácil. Apenas entrar no seu perfil e clicar para sair.
Tão fácil quando clicar em um botão. Mas isso pode ser uma tarefa muito
árdua para pessoas que tenham limitações nessa área. Nós entendemos.

 

Devo dizer que não sou moderador do grupo, apenas um simples usuário. Mas
que em vários anos de grupo nunca vi nada parecido com isso. E não posso
aceitar quieto. 

 

Se você está tentando sair do grupo, é porque entrou de alguma forma. Se
soube entrar, como não sabe sair? É só pensar um pouco.  E se achar mais
fácil, leia a última linha deste e-mail.. tem um link escrito: SAIR DESTE
GRUPO.

 

Desculpe aos outros colegas de grupo por esta mensagem, mas sei que todos os
que realmente estão aqui como eu por gostar do conteúdo que passa por aqui
não consegue “engolir” uma situação dessas.

 

Abraços a todos.

 

  _  

Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
 http://www.n2solutions.com.br/ www.n2solutions.com.br
 http://www.nfe.n2solutions.com.br/ www.nfe.n2solutions.com.br
 http://www.studion2.com.br/ www.studion2.com.br

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Leandro Nunes
Enviada em: quarta-feira, 4 de agosto de 2010 07:18
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 

  

bando de filha da puta... arrombados... deixa eu sair desta merda de 
grupo

To tentando sair desse inferno de grupo ja mandei e-mail pra todos os mails 
e nada.

num tem moderador nessa merda.

vo comeca a manda foto porno hein!

kct

--
From: Fabricio Colombo fabricio.colombo@gmail.com
mailto:fabricio.colombo.mva%40gmail.com 
Sent: Friday, July 30, 2010 8:41 AM
To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Vc pode passar o where que retorna apenas 50 registros direto para a 
 query.
 É o que faço aqui pra retornar apenas 1 registro, não uso o PacketRecord,
 pois o sql também é executado rapidamente por usar indices e retornar 
 poucos
 dados.

 Em 27 de julho de 2010 09:36, Eny Urias enyur...@yahoo.com.br
mailto:enyurias%40yahoo.com.br  escreveu:



 Não quero mesmo trazer todos os registros do pai... Mas, se o cliente
 quiser
 fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim 
 eu
 nao
 quero trazer tudo...

 Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e 
 abro
 o
 filho atraves do parametro enviado pelo pai... dessa forma ele só me traz
 os
 filhos do pai onde está o ponteiro.

 Tem alguma idéia melhor?
 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Fabricio Colombo 
 fabricio.colombo@gmail.com mailto:fabricio.colombo.mva%40gmail.com
fabricio.colombo.mva%40gmail.com
 

 Para: delphi-br@yahoogrupos.com.br
mailto:delphi-br%40yahoogrupos.com.br  delphi-br%40yahoogrupos.com.br
 Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
 Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]


 Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
 conheço nenhum DataSet que faça diferente. O que vc queria é que ele
 fizesse
 *Lazy Loading*.
 ** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase 
 nunca
 é

 viável carregar todos os dados do pai, principalmente se utilizar 
 DataSnap,
 e portanto, isso foi abolido no nosso sistema.

 Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 
 10
 mil até mais de 4 milhões de registros, então temos que fazer o sistema
 pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira,
 mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
 registro por vez, e é o suficiente, ele não precisa de todos os 
 registros.

 Nosso sistema nem tem navegador de registros e isso não dificulta o
 trabalho
 do usuário, pois vc tem que suprir essa limitação com pesquisas mais
 ricas
 e agéis.

 Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir 
 essa
 tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
 todos os registros da mesma maneira, só que de modo mais custoso?

 Como vc controla a transação, visto que aparentemente vc não usa mais
 Nested
 Datasets?

 Abraços,

 Fabricio

 Em 26 de julho de 2010 19:45, Eny Urias 
 enyur...@yahoo.com.br mailto:enyurias%40yahoo.com.br
enyurias%40yahoo.com.br
 escreveu:

 
 
  Vamos fazer o seguinte
 
  Utilize uma ferramenta tracer e depois me fala o que acontece no 
  momento
 em
  que
  vc abre o cds Pai.
 
  No meu acontece assim: vamos

Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-08-03 Por tôpico NTS INFORMÁTICA
Amigo, as pessoas da Lista não são o que você é.

Não temos culpa de você ter nascido desprovido de inteligência, ninguem aqui 
fez o site da yahoo, portanto xingue sua mãe., pra sair e entrar na olhe 
primeira pagina do grupo seu imbecil nervosinho.

Márcio


  - Original Message - 
  From: Leandro Nunes 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, August 04, 2010 7:18 AM
  Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]



  bando de filha da puta... arrombados... deixa eu sair desta merda de 
  grupo

  To tentando sair desse inferno de grupo ja mandei e-mail pra todos os mails 
  e nada.

  num tem moderador nessa merda.

  vo comeca a manda foto porno hein!

  kct

  --
  From: Fabricio Colombo fabricio.colombo@gmail.com
  Sent: Friday, July 30, 2010 8:41 AM
  To: delphi-br@yahoogrupos.com.br
  Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

   Vc pode passar o where que retorna apenas 50 registros direto para a 
   query.
   É o que faço aqui pra retornar apenas 1 registro, não uso o PacketRecord,
   pois o sql também é executado rapidamente por usar indices e retornar 
   poucos
   dados.
  
   Em 27 de julho de 2010 09:36, Eny Urias enyur...@yahoo.com.br escreveu:
  
  
  
   Não quero mesmo trazer todos os registros do pai... Mas, se o cliente
   quiser
   fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim 
   eu
   nao
   quero trazer tudo...
  
   Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e 
   abro
   o
   filho atraves do parametro enviado pelo pai... dessa forma ele só me traz
   os
   filhos do pai onde está o ponteiro.
  
   Tem alguma idéia melhor?
   --
   Eny Trova Urias
  
   Somos o que repetitivamente fazemos, portanto, a excelência não é um
   feito, mas
   um hábito- Aristóteles
  
   
   De: Fabricio Colombo 
   fabricio.colombo@gmail.comfabricio.colombo.mva%40gmail.com
   
  
   Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
   Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
   Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]
  
  
   Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
   conheço nenhum DataSet que faça diferente. O que vc queria é que ele
   fizesse
   *Lazy Loading*.
   ** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase 
   nunca
   é
  
   viável carregar todos os dados do pai, principalmente se utilizar 
   DataSnap,
   e portanto, isso foi abolido no nosso sistema.
  
   Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 
   10
   mil até mais de 4 milhões de registros, então temos que fazer o sistema
   pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira,
   mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
   registro por vez, e é o suficiente, ele não precisa de todos os 
   registros.
  
   Nosso sistema nem tem navegador de registros e isso não dificulta o
   trabalho
   do usuário, pois vc tem que suprir essa limitação com pesquisas mais
   ricas
   e agéis.
  
   Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir 
   essa
   tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
   todos os registros da mesma maneira, só que de modo mais custoso?
  
   Como vc controla a transação, visto que aparentemente vc não usa mais
   Nested
   Datasets?
  
   Abraços,
  
   Fabricio
  
   Em 26 de julho de 2010 19:45, Eny Urias 
   enyur...@yahoo.com.brenyurias%40yahoo.com.br
   escreveu:
  
   
   
Vamos fazer o seguinte
   
Utilize uma ferramenta tracer e depois me fala o que acontece no 
momento
   em
que
vc abre o cds Pai.
   
No meu acontece assim: vamos imaginar uma tabela pai com 100.000
registros... E
uma tabela filho com 10 itens para cada pai... Então o programa vai
   trazer
na
memória 1.000.000 certo?
   
Eu quero carregar todos os registros do cds pai e, somente trazer os do
filho,
quando o ponteiro estiver no pai.. entendeu? Foi aí que eu comecei a
utilizar o
evento AfterScroll...
   
   
--
Eny Trova Urias
   
Somos o que repetitivamente fazemos, portanto, a excelência não é um
feito, mas
um hábito- Aristóteles
   

De: Andre Yahoo gyncow...@yahoo.com.br 
gyncowboy%40yahoo.com.brgyncowboy%
   40yahoo.com.br
   
Para: delphi-br@yahoogrupos.com.br 
delphi-br%40yahoogrupos.com.brdelphi-br%
   40yahoogrupos.com.br
  
Enviadas: Sábado, 24 de Julho de 2010 20:33:03
Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]
   
Cara Eny,
   
Não entendi o porque do problema, uma vez que ao carregar o registro
pai, você vai estar filtrando ele, o que retornará para o registro
mestre somente um registro, já para o filho você estará retornando
   todos
   
os

Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-08-03 Por tôpico Leandrooooo Nunes
c acha que eu jah nau tentei isso o seu retardado!




From: Claudiney Cogo 
Sent: Tuesday, August 03, 2010 9:39 AM
To: delphi-br@yahoogrupos.com.br 
Subject: RES: [delphi-br] [CLIENTDATASET 3 TABELAS]


  
Moderador eu acredito que tenha sim, mas até agora tivemos apenas pessoas
educadas no grupo e não foi necessário a intervenção dele.

E também, para qualquer pessoa com um mínimo de conhecimento em informática,
sair do grupo é muito fácil. Apenas entrar no seu perfil e clicar para sair.
Tão fácil quando clicar em um botão. Mas isso pode ser uma tarefa muito
árdua para pessoas que tenham limitações nessa área. Nós entendemos.

Devo dizer que não sou moderador do grupo, apenas um simples usuário. Mas
que em vários anos de grupo nunca vi nada parecido com isso. E não posso
aceitar quieto. 

Se você está tentando sair do grupo, é porque entrou de alguma forma. Se
soube entrar, como não sabe sair? É só pensar um pouco. E se achar mais
fácil, leia a última linha deste e-mail.. tem um link escrito: SAIR DESTE
GRUPO.

Desculpe aos outros colegas de grupo por esta mensagem, mas sei que todos os
que realmente estão aqui como eu por gostar do conteúdo que passa por aqui
não consegue engolir uma situação dessas.

Abraços a todos.

_ 

Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
http://www.n2solutions.com.br/ www.n2solutions.com.br
http://www.nfe.n2solutions.com.br/ www.nfe.n2solutions.com.br
http://www.studion2.com.br/ www.studion2.com.br

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Leandro Nunes
Enviada em: quarta-feira, 4 de agosto de 2010 07:18
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

bando de filha da puta... arrombados... deixa eu sair desta merda de 
grupo

To tentando sair desse inferno de grupo ja mandei e-mail pra todos os mails 
e nada.

num tem moderador nessa merda.

vo comeca a manda foto porno hein!

kct

--
From: Fabricio Colombo fabricio.colombo@gmail.com
mailto:fabricio.colombo.mva%40gmail.com 
Sent: Friday, July 30, 2010 8:41 AM
To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Vc pode passar o where que retorna apenas 50 registros direto para a 
 query.
 É o que faço aqui pra retornar apenas 1 registro, não uso o PacketRecord,
 pois o sql também é executado rapidamente por usar indices e retornar 
 poucos
 dados.

 Em 27 de julho de 2010 09:36, Eny Urias enyur...@yahoo.com.br
mailto:enyurias%40yahoo.com.br  escreveu:



 Não quero mesmo trazer todos os registros do pai... Mas, se o cliente
 quiser
 fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim 
 eu
 nao
 quero trazer tudo...

 Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e 
 abro
 o
 filho atraves do parametro enviado pelo pai... dessa forma ele só me traz
 os
 filhos do pai onde está o ponteiro.

 Tem alguma idéia melhor?
 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Fabricio Colombo 
 fabricio.colombo@gmail.com mailto:fabricio.colombo.mva%40gmail.com
fabricio.colombo.mva%40gmail.com
 

 Para: delphi-br@yahoogrupos.com.br
mailto:delphi-br%40yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
 Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]


 Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
 conheço nenhum DataSet que faça diferente. O que vc queria é que ele
 fizesse
 *Lazy Loading*.
 ** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase 
 nunca
 é

 viável carregar todos os dados do pai, principalmente se utilizar 
 DataSnap,
 e portanto, isso foi abolido no nosso sistema.

 Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 
 10
 mil até mais de 4 milhões de registros, então temos que fazer o sistema
 pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira,
 mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
 registro por vez, e é o suficiente, ele não precisa de todos os 
 registros.

 Nosso sistema nem tem navegador de registros e isso não dificulta o
 trabalho
 do usuário, pois vc tem que suprir essa limitação com pesquisas mais
 ricas
 e agéis.

 Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir 
 essa
 tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
 todos os registros da mesma maneira, só que de modo mais custoso?

 Como vc controla a transação, visto que aparentemente vc não usa mais
 Nested
 Datasets?

 Abraços,

 Fabricio

 Em 26 de julho de 2010 19:45, Eny Urias 
 enyur...@yahoo.com.br mailto:enyurias%40yahoo.com.br
enyurias%40yahoo.com.br
 escreveu

Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-08-03 Por tôpico Leandrooooo Nunes
outro retardado!


From: NTS INFORMÁTICA 
Sent: Tuesday, August 03, 2010 9:45 AM
To: delphi-br@yahoogrupos.com.br 
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]


  
Amigo, as pessoas da Lista não são o que você é.

Não temos culpa de você ter nascido desprovido de inteligência, ninguem aqui 
fez o site da yahoo, portanto xingue sua mãe., pra sair e entrar na olhe 
primeira pagina do grupo seu imbecil nervosinho.

Márcio

- Original Message - 
From: Leandro Nunes 
To: delphi-br@yahoogrupos.com.br 
Sent: Wednesday, August 04, 2010 7:18 AM
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

bando de filha da puta... arrombados... deixa eu sair desta merda de 
grupo

To tentando sair desse inferno de grupo ja mandei e-mail pra todos os mails 
e nada.

num tem moderador nessa merda.

vo comeca a manda foto porno hein!

kct

--
From: Fabricio Colombo fabricio.colombo@gmail.com
Sent: Friday, July 30, 2010 8:41 AM
To: delphi-br@yahoogrupos.com.br
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Vc pode passar o where que retorna apenas 50 registros direto para a 
 query.
 É o que faço aqui pra retornar apenas 1 registro, não uso o PacketRecord,
 pois o sql também é executado rapidamente por usar indices e retornar 
 poucos
 dados.

 Em 27 de julho de 2010 09:36, Eny Urias enyur...@yahoo.com.br escreveu:



 Não quero mesmo trazer todos os registros do pai... Mas, se o cliente
 quiser
 fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim 
 eu
 nao
 quero trazer tudo...

 Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e 
 abro
 o
 filho atraves do parametro enviado pelo pai... dessa forma ele só me traz
 os
 filhos do pai onde está o ponteiro.

 Tem alguma idéia melhor?
 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Fabricio Colombo 
 fabricio.colombo@gmail.comfabricio.colombo.mva%40gmail.com
 

 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
 Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]


 Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
 conheço nenhum DataSet que faça diferente. O que vc queria é que ele
 fizesse
 *Lazy Loading*.
 ** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase 
 nunca
 é

 viável carregar todos os dados do pai, principalmente se utilizar 
 DataSnap,
 e portanto, isso foi abolido no nosso sistema.

 Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 
 10
 mil até mais de 4 milhões de registros, então temos que fazer o sistema
 pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira,
 mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
 registro por vez, e é o suficiente, ele não precisa de todos os 
 registros.

 Nosso sistema nem tem navegador de registros e isso não dificulta o
 trabalho
 do usuário, pois vc tem que suprir essa limitação com pesquisas mais
 ricas
 e agéis.

 Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir 
 essa
 tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
 todos os registros da mesma maneira, só que de modo mais custoso?

 Como vc controla a transação, visto que aparentemente vc não usa mais
 Nested
 Datasets?

 Abraços,

 Fabricio

 Em 26 de julho de 2010 19:45, Eny Urias 
 enyur...@yahoo.com.brenyurias%40yahoo.com.br
 escreveu:

 
 
  Vamos fazer o seguinte
 
  Utilize uma ferramenta tracer e depois me fala o que acontece no 
  momento
 em
  que
  vc abre o cds Pai.
 
  No meu acontece assim: vamos imaginar uma tabela pai com 100.000
  registros... E
  uma tabela filho com 10 itens para cada pai... Então o programa vai
 trazer
  na
  memória 1.000.000 certo?
 
  Eu quero carregar todos os registros do cds pai e, somente trazer os do
  filho,
  quando o ponteiro estiver no pai.. entendeu? Foi aí que eu comecei a
  utilizar o
  evento AfterScroll...
 
 
  --
  Eny Trova Urias
 
  Somos o que repetitivamente fazemos, portanto, a excelência não é um
  feito, mas
  um hábito- Aristóteles
 
  
  De: Andre Yahoo gyncow...@yahoo.com.br 
  gyncowboy%40yahoo.com.brgyncowboy%
 40yahoo.com.br
 
  Para: delphi-br@yahoogrupos.com.br 
  delphi-br%40yahoogrupos.com.brdelphi-br%
 40yahoogrupos.com.br

  Enviadas: Sábado, 24 de Julho de 2010 20:33:03
  Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]
 
  Cara Eny,
 
  Não entendi o porque do problema, uma vez que ao carregar o registro
  pai, você vai estar filtrando ele, o que retornará para o registro
  mestre somente um registro, já para o filho você estará retornando
 todos
 
  os detalhes que estão vinculados com este registro mestre.
 
  Mas você disse: quando o CDS carrega os registros do Master, ele tras
  também, para

Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-08-03 Por tôpico Leandrooooo Nunes
   Exibir apresentação de 
slideshttp://g.msn.com/5meen_us/171?path=/photomail/{c704e101-68df-4f06-82db-a4b48a82d64b}image=E93049445163A9AB!393imagehi=E93049445163A9AB!391CID=-1643733306218141269
   Salvar todas as fotos  Deseja salvar todas essas fotos de uma vez? Saiba 
como 
http://explore.live.com/windows-live-mail-help-center/help.aspx?mkt=en-usproject=WL_Mailv3querytype=keywordquery=segami_lla_evas
 
 As imagens online estão disponíveis por 30 dias  

comi 
ontem!http://public.bay.livefilestore.com/y1pnEVKdbomFpZg0fPJa18wT5PEPZwYwPeShn6sh_4EH5CEdEYCA7-xFMMERACReCL2zY3r_8mpYUOl8RM2k3mwiA/5.jpg.jpg?download
 
 
  
http://public.bay.livefilestore.com/y1plUNDMWN6WUS35LvsbRzn7XM1P2VDdMhj3ikLSabPY1sBuT4qbi6hKLEcqm2rzXFVr_-0mASX_gmQowWWPlMkFw/1.jpg.jpg?download
 
 
  
http://public.bay.livefilestore.com/y1pAigvAKsQPzE_lH2Zg2pM97yYaJd4XSz4GsMf4s_dO0sZ_pVI4n3znxuCdpTrW_dwJSCPWYcHjBfts36rqT2wrw/2.jpg.jpg?download
 
 
  
http://public.bay.livefilestore.com/y1pfKstIW2n7mQsaJufd7KuvxIEcxiqqQHXjeaqiSrL1ixr38-8tIuggQjF8wWACLLpyVRZYF2D0vPUlOPiXGdOWw/3.jpg.jpg?download
 
 
  
http://public.bay.livefilestore.com/y1pZ_4AIQknIHFTCveZiifRmtNbBGpBE1jH6xyBoaVFFYYp44CElzC-KVOaWG-Yikf8MqSQsfynVLBqxSOSXlXjdg/4.jpg.jpg?download
 
 



From: Claudiney Cogomailto:claudiney-lis...@n2solutions.com.br 
Sent: Tuesday, August 03, 2010 9:39 AM
To: delphi-br@yahoogrupos.com.brmailto:delphi-br@yahoogrupos.com.br 
Subject: RES: [delphi-br] [CLIENTDATASET 3 TABELAS]


  
Moderador eu acredito que tenha sim, mas até agora tivemos apenas pessoas
educadas no grupo e não foi necessário a intervenção dele.

E também, para qualquer pessoa com um mínimo de conhecimento em informática,
sair do grupo é muito fácil. Apenas entrar no seu perfil e clicar para sair.
Tão fácil quando clicar em um botão. Mas isso pode ser uma tarefa muito
árdua para pessoas que tenham limitações nessa área. Nós entendemos.

Devo dizer que não sou moderador do grupo, apenas um simples usuário. Mas
que em vários anos de grupo nunca vi nada parecido com isso. E não posso
aceitar quieto. 

Se você está tentando sair do grupo, é porque entrou de alguma forma. Se
soube entrar, como não sabe sair? É só pensar um pouco. E se achar mais
fácil, leia a última linha deste e-mail.. tem um link escrito: SAIR DESTE
GRUPO.

Desculpe aos outros colegas de grupo por esta mensagem, mas sei que todos os
que realmente estão aqui como eu por gostar do conteúdo que passa por aqui
não consegue “engolir” uma situação dessas.

Abraços a todos.

_ 

Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
http://www.n2solutions.com.br/http://www.n2solutions.com.br/ 
www.n2solutions.com.br
http://www.nfe.n2solutions.com.br/http://www.nfe.n2solutions.com.br/ 
www.nfe.n2solutions.com.br
http://www.studion2.com.br/http://www.studion2.com.br/ www.studion2.com.br

De: delphi-br@yahoogrupos.com.brmailto:delphi-br%40yahoogrupos.com.br 
[mailto:delphi-br@yahoogrupos.com.brmailto:delphi-br%40yahoogrupos.com.br] Em
nome de Leandro Nunes
Enviada em: quarta-feira, 4 de agosto de 2010 07:18
Para: delphi-br@yahoogrupos.com.brmailto:delphi-br%40yahoogrupos.com.br
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

bando de filha da puta... arrombados... deixa eu sair desta merda de 
grupo

To tentando sair desse inferno de grupo ja mandei e-mail pra todos os mails 
e nada.

num tem moderador nessa merda.

vo comeca a manda foto porno hein!

kct

--
From: Fabricio Colombo 
fabricio.colombo@gmail.commailto:fabricio.colombo.mva%40gmail.com
mailto:fabricio.colombo.mva%40gmail.com 
Sent: Friday, July 30, 2010 8:41 AM
To: delphi-br@yahoogrupos.com.brmailto:delphi-br%40yahoogrupos.com.br 
mailto:delphi-br%40yahoogrupos.com.br 
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Vc pode passar o where que retorna apenas 50 registros direto para a 
 query.
 É o que faço aqui pra retornar apenas 1 registro, não uso o PacketRecord,
 pois o sql também é executado rapidamente por usar indices e retornar 
 poucos
 dados.

 Em 27 de julho de 2010 09:36, Eny Urias 
 enyur...@yahoo.com.brmailto:enyurias%40yahoo.com.br
mailto:enyurias%40yahoo.com.br  escreveu:



 Não quero mesmo trazer todos os registros do pai... Mas, se o cliente
 quiser
 fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim 
 eu
 nao
 quero trazer tudo...

 Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e 
 abro
 o
 filho atraves do parametro enviado pelo pai... dessa forma ele só me traz
 os
 filhos do pai onde está o ponteiro.

 Tem alguma idéia melhor?
 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Fabricio Colombo 
 fabricio.colombo@gmail.commailto:fabricio.colombo.mva%40gmail.com

RES: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-08-03 Por tôpico Vitor Yahoo
É bem provável que não. Atitudes como essas só mostram que você tem a
inteligência de uma pedra manca.

Entre no seu perfil, no yahoo. É só digitar o usuário e a senha, use o
teclado (aquela coisa cheia de números e caracteres que provavelmente está a
sua frente), você pode conferir o resultado das teclas que aperta no
monitor. (aquela coisa brilhante que também está a sua frente)

Entrou no perfil/ Deve aparecer um “Oi otário” na sua tela. Nessa mesma
tela, tem um menu (aquela coisa cheia de botões) do lado esquerdo. Clique em
“Grupos” (se não souber ler, procure uma escola).

Na página de Grupos, aparecerá outro menu (explicação acima) entitulado
“Meus Grupos”. Clique em gerenciar, o link ao lado do título “Meus Grupos”.
Na tela que segue, clique em “editar meus grupos”.

 

Os grupos nos quais você está inscrito aparecerão magicamente na sua tela.
No final de cada linha existe uma caixa de checagem (um quadrado que quando
clicado muda para um quadrado com um “V”). 

Marque as opções desejadas (não tente se matar por essa tela, não tem essa
opção ainda) e depois, clique em Salvar (o botão azul).

 

Esse é o caminho mais longo, mas se você não conseguir, exclua sua conta,
procure o hospício mais próximo ou a universidade mais próxima e entregue-se
para um estudo mais detalhado.

 

Para complementar, ninguém aqui fez o yahoo (como já foi dito) e ninguém
“aprova” a saída de membros do grupo, a entrada e saída dos membros é de
total responsabilidade do... ... ... ... membro, claro. Se você realmente é
desprovido de massa cefálica e está digitando através de uma criança de 5
anos, não se preocupe, ela é perfeitamente capaz de executar os
procedimentos acima descritos.

 

Tenha uma semana horrenda.

 

Obrigado.

 

  _  

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Leandro Nunes
Enviada em: quarta-feira, 4 de agosto de 2010 12:31
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 

  

c acha que eu jah nau tentei isso o seu retardado!

From: Claudiney Cogo 
Sent: Tuesday, August 03, 2010 9:39 AM
To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br  
Subject: RES: [delphi-br] [CLIENTDATASET 3 TABELAS]

Moderador eu acredito que tenha sim, mas até agora tivemos apenas pessoas
educadas no grupo e não foi necessário a intervenção dele.

E também, para qualquer pessoa com um mínimo de conhecimento em informática,
sair do grupo é muito fácil. Apenas entrar no seu perfil e clicar para sair.
Tão fácil quando clicar em um botão. Mas isso pode ser uma tarefa muito
árdua para pessoas que tenham limitações nessa área. Nós entendemos.

Devo dizer que não sou moderador do grupo, apenas um simples usuário. Mas
que em vários anos de grupo nunca vi nada parecido com isso. E não posso
aceitar quieto. 

Se você está tentando sair do grupo, é porque entrou de alguma forma. Se
soube entrar, como não sabe sair? É só pensar um pouco. E se achar mais
fácil, leia a última linha deste e-mail.. tem um link escrito: SAIR DESTE
GRUPO.

Desculpe aos outros colegas de grupo por esta mensagem, mas sei que todos os
que realmente estão aqui como eu por gostar do conteúdo que passa por aqui
não consegue engolir uma situação dessas.

Abraços a todos.

_ 

Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
http://www.n2solutions.com.br/ www.n2solutions.com.br
http://www.nfe.n2solutions.com.br/ www.nfe.n2solutions.com.br
http://www.studion2.com.br/ www.studion2.com.br

De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
[mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
] Em
nome de Leandro Nunes
Enviada em: quarta-feira, 4 de agosto de 2010 07:18
Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

bando de filha da puta... arrombados... deixa eu sair desta merda de 
grupo

To tentando sair desse inferno de grupo ja mandei e-mail pra todos os mails 
e nada.

num tem moderador nessa merda.

vo comeca a manda foto porno hein!

kct

--
From: Fabricio Colombo fabricio.colombo@gmail.com
mailto:fabricio.colombo.mva%40gmail.com 
mailto:fabricio.colombo.mva%40gmail.com 
Sent: Friday, July 30, 2010 8:41 AM
To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
mailto:delphi-br%40yahoogrupos.com.br 
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Vc pode passar o where que retorna apenas 50 registros direto para a 
 query.
 É o que faço aqui pra retornar apenas 1 registro, não uso o PacketRecord,
 pois o sql também é executado rapidamente por usar indices e retornar 
 poucos
 dados.

 Em 27 de julho de 2010 09:36, Eny Urias enyur...@yahoo.com.br
mailto:enyurias%40yahoo.com.br 
mailto:enyurias%40yahoo.com.br  escreveu:



 Não quero mesmo trazer todos os registros do

Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-08-03 Por tôpico Leandrooooo Nunes
c deve trabalhar pr caralho hein!!! hahahaha

entra lá e clica nesse link pra ver se funciona zé!!!

e ó não escreve email tao compreido assim, eu só li o primeiro paragrafo.


From: Vitor Yahoo 
Sent: Tuesday, August 03, 2010 2:23 PM
To: delphi-br@yahoogrupos.com.br 
Subject: RES: [delphi-br] [CLIENTDATASET 3 TABELAS]


  
É bem provável que não. Atitudes como essas só mostram que você tem a
inteligência de uma pedra manca.

Entre no seu perfil, no yahoo. É só digitar o usuário e a senha, use o
teclado (aquela coisa cheia de números e caracteres que provavelmente está a
sua frente), você pode conferir o resultado das teclas que aperta no
monitor. (aquela coisa brilhante que também está a sua frente)

Entrou no perfil/ Deve aparecer um Oi otário na sua tela. Nessa mesma
tela, tem um menu (aquela coisa cheia de botões) do lado esquerdo. Clique em
Grupos (se não souber ler, procure uma escola).

Na página de Grupos, aparecerá outro menu (explicação acima) entitulado
Meus Grupos. Clique em gerenciar, o link ao lado do título Meus Grupos.
Na tela que segue, clique em editar meus grupos.

Os grupos nos quais você está inscrito aparecerão magicamente na sua tela.
No final de cada linha existe uma caixa de checagem (um quadrado que quando
clicado muda para um quadrado com um V). 

Marque as opções desejadas (não tente se matar por essa tela, não tem essa
opção ainda) e depois, clique em Salvar (o botão azul).

Esse é o caminho mais longo, mas se você não conseguir, exclua sua conta,
procure o hospício mais próximo ou a universidade mais próxima e entregue-se
para um estudo mais detalhado.

Para complementar, ninguém aqui fez o yahoo (como já foi dito) e ninguém
aprova a saída de membros do grupo, a entrada e saída dos membros é de
total responsabilidade do... ... ... ... membro, claro. Se você realmente é
desprovido de massa cefálica e está digitando através de uma criança de 5
anos, não se preocupe, ela é perfeitamente capaz de executar os
procedimentos acima descritos.

Tenha uma semana horrenda.

Obrigado.

_ 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Leandro Nunes
Enviada em: quarta-feira, 4 de agosto de 2010 12:31
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

c acha que eu jah nau tentei isso o seu retardado!

From: Claudiney Cogo 
Sent: Tuesday, August 03, 2010 9:39 AM
To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Subject: RES: [delphi-br] [CLIENTDATASET 3 TABELAS]

Moderador eu acredito que tenha sim, mas até agora tivemos apenas pessoas
educadas no grupo e não foi necessário a intervenção dele.

E também, para qualquer pessoa com um mínimo de conhecimento em informática,
sair do grupo é muito fácil. Apenas entrar no seu perfil e clicar para sair.
Tão fácil quando clicar em um botão. Mas isso pode ser uma tarefa muito
árdua para pessoas que tenham limitações nessa área. Nós entendemos.

Devo dizer que não sou moderador do grupo, apenas um simples usuário. Mas
que em vários anos de grupo nunca vi nada parecido com isso. E não posso
aceitar quieto. 

Se você está tentando sair do grupo, é porque entrou de alguma forma. Se
soube entrar, como não sabe sair? É só pensar um pouco. E se achar mais
fácil, leia a última linha deste e-mail.. tem um link escrito: SAIR DESTE
GRUPO.

Desculpe aos outros colegas de grupo por esta mensagem, mas sei que todos os
que realmente estão aqui como eu por gostar do conteúdo que passa por aqui
não consegue engolir uma situação dessas.

Abraços a todos.

_ 

Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
http://www.n2solutions.com.br/ www.n2solutions.com.br
http://www.nfe.n2solutions.com.br/ www.nfe.n2solutions.com.br
http://www.studion2.com.br/ www.studion2.com.br

De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
[mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
] Em
nome de Leandro Nunes
Enviada em: quarta-feira, 4 de agosto de 2010 07:18
Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

bando de filha da puta... arrombados... deixa eu sair desta merda de 
grupo

To tentando sair desse inferno de grupo ja mandei e-mail pra todos os mails 
e nada.

num tem moderador nessa merda.

vo comeca a manda foto porno hein!

kct

--
From: Fabricio Colombo fabricio.colombo@gmail.com
mailto:fabricio.colombo.mva%40gmail.com 
mailto:fabricio.colombo.mva%40gmail.com 
Sent: Friday, July 30, 2010 8:41 AM
To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
mailto:delphi-br%40yahoogrupos.com.br 
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Vc pode passar o where que retorna apenas 50 registros direto para a 
 query.
 É o que faço aqui pra retornar apenas 1 registro, não uso o

RES: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-08-03 Por tôpico Claudiney Cogo
Eu? Tem certeza?

 

Eu sei sair do grupo. Rsrs

 

Mas esse tipo de discussão não leva a nada. Só resta esperar que o moderador
ou o owner do grupo nos deixe livre de você. Eu agradeceria muito.

 

Abraço.

 

  _  

Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
 http://www.n2solutions.com.br/ www.n2solutions.com.br
 http://www.nfe.n2solutions.com.br/ www.nfe.n2solutions.com.br
 http://www.studion2.com.br/ www.studion2.com.br

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Leandro Nunes
Enviada em: quarta-feira, 4 de agosto de 2010 12:31
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 

  

c acha que eu jah nau tentei isso o seu retardado!

From: Claudiney Cogo 
Sent: Tuesday, August 03, 2010 9:39 AM
To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br  
Subject: RES: [delphi-br] [CLIENTDATASET 3 TABELAS]

Moderador eu acredito que tenha sim, mas até agora tivemos apenas pessoas
educadas no grupo e não foi necessário a intervenção dele.

E também, para qualquer pessoa com um mínimo de conhecimento em informática,
sair do grupo é muito fácil. Apenas entrar no seu perfil e clicar para sair.
Tão fácil quando clicar em um botão. Mas isso pode ser uma tarefa muito
árdua para pessoas que tenham limitações nessa área. Nós entendemos.

Devo dizer que não sou moderador do grupo, apenas um simples usuário. Mas
que em vários anos de grupo nunca vi nada parecido com isso. E não posso
aceitar quieto. 

Se você está tentando sair do grupo, é porque entrou de alguma forma. Se
soube entrar, como não sabe sair? É só pensar um pouco. E se achar mais
fácil, leia a última linha deste e-mail.. tem um link escrito: SAIR DESTE
GRUPO.

Desculpe aos outros colegas de grupo por esta mensagem, mas sei que todos os
que realmente estão aqui como eu por gostar do conteúdo que passa por aqui
não consegue engolir uma situação dessas.

Abraços a todos.

_ 

Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
http://www.n2solutions.com.br/ www.n2solutions.com.br
http://www.nfe.n2solutions.com.br/ www.nfe.n2solutions.com.br
http://www.studion2.com.br/ www.studion2.com.br

De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
[mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
] Em
nome de Leandro Nunes
Enviada em: quarta-feira, 4 de agosto de 2010 07:18
Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

bando de filha da puta... arrombados... deixa eu sair desta merda de 
grupo

To tentando sair desse inferno de grupo ja mandei e-mail pra todos os mails 
e nada.

num tem moderador nessa merda.

vo comeca a manda foto porno hein!

kct

--
From: Fabricio Colombo fabricio.colombo@gmail.com
mailto:fabricio.colombo.mva%40gmail.com 
mailto:fabricio.colombo.mva%40gmail.com 
Sent: Friday, July 30, 2010 8:41 AM
To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
mailto:delphi-br%40yahoogrupos.com.br 
Subject: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Vc pode passar o where que retorna apenas 50 registros direto para a 
 query.
 É o que faço aqui pra retornar apenas 1 registro, não uso o PacketRecord,
 pois o sql também é executado rapidamente por usar indices e retornar 
 poucos
 dados.

 Em 27 de julho de 2010 09:36, Eny Urias enyur...@yahoo.com.br
mailto:enyurias%40yahoo.com.br 
mailto:enyurias%40yahoo.com.br  escreveu:



 Não quero mesmo trazer todos os registros do pai... Mas, se o cliente
 quiser
 fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim 
 eu
 nao
 quero trazer tudo...

 Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e 
 abro
 o
 filho atraves do parametro enviado pelo pai... dessa forma ele só me traz
 os
 filhos do pai onde está o ponteiro.

 Tem alguma idéia melhor?
 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Fabricio Colombo 
 fabricio.colombo@gmail.com mailto:fabricio.colombo.mva%40gmail.com
mailto:fabricio.colombo.mva%40gmail.com
fabricio.colombo.mva%40gmail.com
 

 Para: delphi-br@yahoogrupos.com.br
mailto:delphi-br%40yahoogrupos.com.br 
mailto:delphi-br%40yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
 Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]


 Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
 conheço nenhum DataSet que faça diferente. O que vc queria é que ele
 fizesse
 *Lazy Loading*.
 ** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase 
 nunca
 é

 viável carregar todos os

Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-31 Por tôpico Fabricio Colombo
Vc pode passar o where que retorna apenas 50 registros direto para a query.
É o que faço aqui pra retornar apenas 1 registro, não uso o PacketRecord,
pois o sql também é executado rapidamente por usar indices e retornar poucos
dados.

Em 27 de julho de 2010 09:36, Eny Urias enyur...@yahoo.com.br escreveu:



 Não quero mesmo trazer todos os registros do pai... Mas, se o cliente
 quiser
 fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim eu
 nao
 quero trazer tudo...

 Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e abro
 o
 filho atraves do parametro enviado pelo pai... dessa forma ele só me traz
 os
 filhos do pai onde está o ponteiro.

 Tem alguma idéia melhor?
 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Fabricio Colombo 
 fabricio.colombo@gmail.comfabricio.colombo.mva%40gmail.com
 

 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
 Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]


 Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
 conheço nenhum DataSet que faça diferente. O que vc queria é que ele
 fizesse
 *Lazy Loading*.
 ** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase nunca
 é

 viável carregar todos os dados do pai, principalmente se utilizar DataSnap,
 e portanto, isso foi abolido no nosso sistema.

 Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 10
 mil até mais de 4 milhões de registros, então temos que fazer o sistema
 pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira,
 mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
 registro por vez, e é o suficiente, ele não precisa de todos os registros.

 Nosso sistema nem tem navegador de registros e isso não dificulta o
 trabalho
 do usuário, pois vc tem que suprir essa limitação com pesquisas mais
 ricas
 e agéis.

 Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir essa
 tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
 todos os registros da mesma maneira, só que de modo mais custoso?

 Como vc controla a transação, visto que aparentemente vc não usa mais
 Nested
 Datasets?

 Abraços,

 Fabricio

 Em 26 de julho de 2010 19:45, Eny Urias 
 enyur...@yahoo.com.brenyurias%40yahoo.com.br
 escreveu:

 
 
  Vamos fazer o seguinte
 
  Utilize uma ferramenta tracer e depois me fala o que acontece no momento
 em
  que
  vc abre o cds Pai.
 
  No meu acontece assim: vamos imaginar uma tabela pai com 100.000
  registros... E
  uma tabela filho com 10 itens para cada pai... Então o programa vai
 trazer
  na
  memória 1.000.000 certo?
 
  Eu quero carregar todos os registros do cds pai e, somente trazer os do
  filho,
  quando o ponteiro estiver no pai.. entendeu? Foi aí que eu comecei a
  utilizar o
  evento AfterScroll...
 
 
  --
  Eny Trova Urias
 
  Somos o que repetitivamente fazemos, portanto, a excelência não é um
  feito, mas
  um hábito- Aristóteles
 
  
  De: Andre Yahoo gyncow...@yahoo.com.br 
  gyncowboy%40yahoo.com.brgyncowboy%
 40yahoo.com.br
 
  Para: delphi-br@yahoogrupos.com.br 
  delphi-br%40yahoogrupos.com.brdelphi-br%
 40yahoogrupos.com.br

  Enviadas: Sábado, 24 de Julho de 2010 20:33:03
  Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]
 
  Cara Eny,
 
  Não entendi o porque do problema, uma vez que ao carregar o registro
  pai, você vai estar filtrando ele, o que retornará para o registro
  mestre somente um registro, já para o filho você estará retornando
 todos
 
  os detalhes que estão vinculados com este registro mestre.
 
  Mas você disse: quando o CDS carrega os registros do Master, ele tras
  também, para cada registro pai, todos os registros do filho, quer dizer
  que estava retornando todos os mestres ? Para a programação C/S você
  retorna somente um registro mestre, que é o que o usuário vai trabalhar
  nele, não precisa retornar todos os registros. Se era essa a situação,
 o
 
  problema era estrutural e com erro de programação, não do componente
 ou
  da maneira com os mesmos eram usados.
 
  Se não for isso que acontecia e puder explicar melhor, pois acho que
  muitos como eu podem não ter entendido a situação que ocorria muito
 bem.
 
  Atenciosamente,
 
  André Luis da Silveira
 
  Siagri - Sistemas de Gestao Ltda.
 
  __
  Fale com seus amigos de graça com o novo Yahoo! Messenger
  http://br.messenger.yahoo.com/
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 


 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

 [As partes desta mensagem que não continham texto foram

RE: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-29 Por tôpico Bruno Lichot
Sao duas coisas

 

Uma e utilizar o mestre detalhe com nested dataset como esta no vídeo do FDD 
2008 que para melhorar o trafego vc deve no dataset de detalhe colocar o 
packagerecords como 1 e aplicar um CDs.disablecontrols antes de dar um open e 
um enablecontrols após isso, ajuda na performance de abertura e na redução de 
trafego pois os controles visuais não forçarão o packagerecord, outra fora e 
alinhar o uso do getnextpack. Para tabelas simples e principalmente para 
relatórios é muito importante.

 

Para movimentos mais pesados e complexos eu uso o mestre detalhe descontecado, 
como mostro na serie de artigos que esta na active Delphi desde a edição 74 e 
cujo exemplo esta no meu link de downloads também. Os exemplos multicamadas 
precisam, dependendo do caso, do banco de dados instalado (InterBase, FireBird, 
Oracle ou SQL Server), no servidor de aplicação geralmente tem um arquivo de 
configuração de acesso ao banco e nos clientes um arquivo para este acessar o 
servidor. Esta tudo explicado no artigo.

 

Se vc postar o erro e disser qual o Delphi que esta utilizando eu consigo te 
indicar como rodar o exemplo.

 

Abs

 

Bruno

 

From: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] On 
Behalf Of Eny Urias
Sent: quarta-feira, 28 de julho de 2010 18:28
To: delphi-br@yahoogrupos.com.br
Subject: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

 

  

Eu baixei o codigo do exemplo que vc deu... 

Eu não tenho experiencia nenhuma com FireBird... Não sei se precisa configurar 
alguma coisa pra poder rodar o exemplo Só sei que não rodou...rs
E esse esquema de mestre/detalhe é exatamente o que eu utilizava antes de 
descobrir o quanto de trafego ele causa na rede... por isso parei de usar...

Mas, para sistemas de pequeno porte dá pra utilizar tranquilo... 
--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles


De: Bruno Lichot bruno.lic...@microfocus.com 
mailto:bruno.lichot%40microfocus.com 
Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Enviadas: Terça-feira, 27 de Julho de 2010 23:18:41
Assunto: RE: [delphi-br] [CLIENTDATASET 3 TABELAS]

Uma boa forma é sempre conduzir pesquisas com filtros e trabalhar este trafego 
de registros através do packagerecords. Uma outra forma é colocar a navegação 
de 
pais e filhos inerentes a sua vizualizaçào e acontecendo por demanda.

Eu estou com artigos na active Delphi desde a edição 74 sobre desenvolvimento 
comercial com Delphi e DataSnap, e um dos tópicos e o tratamento 
mestre-detalhe. 
No meu link de downloads tem alguns exemplos sobre isso, inclusive o exemplo do 
artigo e um vídeo do FDD 2008 onde mostro este e outros recursos do 
clientdataset: http://cc.embarcadero.com/author/795118

Abracos

Bruno

From: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br  
[mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br ] 
On 
Behalf Of Eny Urias
Sent: terça-feira, 27 de julho de 2010 09:37
To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Subject: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

Não quero mesmo trazer todos os registros do pai... Mas, se o cliente quiser 
fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim eu nao 
quero trazer tudo...

Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e abro o 
filho atraves do parametro enviado pelo pai... dessa forma ele só me traz os 
filhos do pai onde está o ponteiro.

Tem alguma idéia melhor? 
--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 

um hábito- Aristóteles


De: Fabricio Colombo fabricio.colombo@gmail.com 
mailto:fabricio.colombo.mva%40gmail.com  
mailto:fabricio.colombo.mva%40gmail.com 
Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br  
mailto:delphi-br%40yahoogrupos.com.br 
Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
conheço nenhum DataSet que faça diferente. O que vc queria é que ele fizesse
*Lazy Loading*.
** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase nunca é
viável carregar todos os dados do pai, principalmente se utilizar DataSnap,
e portanto, isso foi abolido no nosso sistema.

Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 10
mil até mais de 4 milhões de registros, então temos que fazer o sistema
pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira,
mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
registro por vez, e é o suficiente, ele não precisa de todos os registros.

Nosso sistema nem tem navegador de registros e isso não dificulta o trabalho
do usuário, pois vc tem que suprir essa limitação com pesquisas mais ricas
e

Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-28 Por tôpico Eny Urias
Eu baixei o codigo do exemplo que vc deu... 

Eu não tenho experiencia nenhuma com FireBird... Não sei se precisa configurar 
alguma coisa pra poder rodar o exemplo Só sei que não rodou...rs
E esse esquema de mestre/detalhe é exatamente o que eu utilizava antes de 
descobrir o quanto de trafego ele causa na rede... por isso parei de usar...

Mas, para sistemas de pequeno porte dá pra utilizar tranquilo... 
--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles






De: Bruno Lichot bruno.lic...@microfocus.com
Para: delphi-br@yahoogrupos.com.br
Enviadas: Terça-feira, 27 de Julho de 2010 23:18:41
Assunto: RE: [delphi-br] [CLIENTDATASET 3 TABELAS]

  
Uma boa forma é sempre conduzir pesquisas com filtros e trabalhar este trafego 
de registros através do packagerecords. Uma outra forma é colocar a navegação 
de 
pais e filhos inerentes a sua vizualizaçào e acontecendo por demanda.

Eu estou com artigos na active Delphi desde a edição 74 sobre desenvolvimento 
comercial com Delphi e DataSnap, e um dos tópicos e o tratamento 
mestre-detalhe. 
No meu link de downloads tem alguns exemplos sobre isso, inclusive o exemplo do 
artigo e um vídeo do FDD 2008 onde mostro este e outros recursos do 
clientdataset: http://cc.embarcadero.com/author/795118

Abracos

Bruno

From: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] On 
Behalf Of Eny Urias
Sent: terça-feira, 27 de julho de 2010 09:37
To: delphi-br@yahoogrupos.com.br
Subject: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

Não quero mesmo trazer todos os registros do pai... Mas, se o cliente quiser 
fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim eu nao 
quero trazer tudo...

Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e abro o 
filho atraves do parametro enviado pelo pai... dessa forma ele só me traz os 
filhos do pai onde está o ponteiro.

Tem alguma idéia melhor? 
--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 

um hábito- Aristóteles


De: Fabricio Colombo fabricio.colombo@gmail.com 
mailto:fabricio.colombo.mva%40gmail.com 
Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
conheço nenhum DataSet que faça diferente. O que vc queria é que ele fizesse
*Lazy Loading*.
** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase nunca é
viável carregar todos os dados do pai, principalmente se utilizar DataSnap,
e portanto, isso foi abolido no nosso sistema.

Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 10
mil até mais de 4 milhões de registros, então temos que fazer o sistema
pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira,
mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
registro por vez, e é o suficiente, ele não precisa de todos os registros.

Nosso sistema nem tem navegador de registros e isso não dificulta o trabalho
do usuário, pois vc tem que suprir essa limitação com pesquisas mais ricas
e agéis.

Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir essa
tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
todos os registros da mesma maneira, só que de modo mais custoso?

Como vc controla a transação, visto que aparentemente vc não usa mais Nested
Datasets?

Abraços,

Fabricio

Em 26 de julho de 2010 19:45, Eny Urias enyur...@yahoo.com.br 
mailto:enyurias%40yahoo.com.br  escreveu:



 Vamos fazer o seguinte

 Utilize uma ferramenta tracer e depois me fala o que acontece no momento em
 que
 vc abre o cds Pai.

 No meu acontece assim: vamos imaginar uma tabela pai com 100.000
 registros... E
 uma tabela filho com 10 itens para cada pai... Então o programa vai trazer
 na
 memória 1.000.000 certo?

 Eu quero carregar todos os registros do cds pai e, somente trazer os do
 filho,
 quando o ponteiro estiver no pai.. entendeu? Foi aí que eu comecei a
 utilizar o
 evento AfterScroll...


 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Andre Yahoo gyncow...@yahoo.com.br mailto:gyncowboy%40yahoo.com.br  
gyncowboy%40yahoo.com.br

 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br  
delphi-br%40yahoogrupos.com.br
 Enviadas: Sábado, 24 de Julho de 2010 20:33:03
 Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Cara Eny,

 Não entendi o porque do problema, uma vez que ao carregar o registro
 pai, você vai estar filtrando ele, o que retornará para o registro
 mestre somente um registro, já para o filho você estará retornando todos

 os detalhes que

Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-27 Por tôpico Fabricio Colombo
Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
conheço nenhum DataSet que faça diferente. O que vc queria é que ele fizesse
*Lazy Loading*.
** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase nunca é
viável carregar todos os dados do pai, principalmente se utilizar DataSnap,
e portanto, isso foi abolido no nosso sistema.

Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 10
mil até mais de 4 milhões de registros, então temos que fazer o sistema
pensando no cliente de 4 milhões.  Não é viável abrir a tabela inteira,
mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
registro por vez, e é o suficiente, ele não precisa de todos os registros.

Nosso sistema nem tem navegador de registros e isso não dificulta o trabalho
do usuário, pois vc tem que suprir essa limitação com pesquisas mais ricas
e agéis.

Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir essa
tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
todos os registros da mesma maneira, só que de modo mais custoso?

Como vc controla a transação, visto que aparentemente vc não usa mais Nested
Datasets?

Abraços,

Fabricio

Em 26 de julho de 2010 19:45, Eny Urias enyur...@yahoo.com.br escreveu:



 Vamos fazer o seguinte

 Utilize uma ferramenta tracer e depois me fala o que acontece no momento em
 que
 vc abre o cds Pai.

 No meu acontece assim: vamos imaginar uma tabela pai com 100.000
 registros... E
 uma tabela filho com 10 itens para cada pai... Então o programa vai trazer
 na
 memória 1.000.000 certo?

 Eu quero carregar todos os registros do cds pai e, somente trazer os do
 filho,
 quando o ponteiro estiver no pai.. entendeu? Foi aí que eu comecei a
 utilizar o
 evento AfterScroll...


 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Andre Yahoo gyncow...@yahoo.com.br gyncowboy%40yahoo.com.br

 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Sábado, 24 de Julho de 2010 20:33:03
 Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Cara Eny,

 Não entendi o porque do problema, uma vez que ao carregar o registro
 pai, você vai estar filtrando ele, o que retornará para o registro
 mestre somente um registro, já para o filho você estará retornando todos

 os detalhes que estão vinculados com este registro mestre.

 Mas você disse: quando o CDS carrega os registros do Master, ele tras
 também, para cada registro pai, todos os registros do filho, quer dizer
 que estava retornando todos os mestres ? Para a programação C/S você
 retorna somente um registro mestre, que é o que o usuário vai trabalhar
 nele, não precisa retornar todos os registros. Se era essa a situação, o

 problema era estrutural e com erro de programação, não do componente ou
 da maneira com os mesmos eram usados.

 Se não for isso que acontecia e puder explicar melhor, pois acho que
 muitos como eu podem não ter entendido a situação que ocorria muito bem.

 Atenciosamente,

 André Luis da Silveira

 Siagri - Sistemas de Gestao Ltda.

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





-- 
 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:
delphi-br-ow...@yahoogrupos.com.br
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:
delphi-br-unsubscr...@yahoogrupos.com.br

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




Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-27 Por tôpico Eny Urias
Não quero mesmo trazer todos os registros do pai... Mas, se o cliente quiser 
fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim eu nao 
quero trazer tudo...

Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e abro o 
filho atraves do parametro enviado pelo pai... dessa forma ele só me traz os 
filhos do pai onde está o ponteiro.

Tem alguma idéia melhor? 
--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles






De: Fabricio Colombo fabricio.colombo@gmail.com
Para: delphi-br@yahoogrupos.com.br
Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
conheço nenhum DataSet que faça diferente. O que vc queria é que ele fizesse
*Lazy Loading*.
** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase nunca é
viável carregar todos os dados do pai, principalmente se utilizar DataSnap,
e portanto, isso foi abolido no nosso sistema.

Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 10
mil até mais de 4 milhões de registros, então temos que fazer o sistema
pensando no cliente de 4 milhões.  Não é viável abrir a tabela inteira,
mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
registro por vez, e é o suficiente, ele não precisa de todos os registros.

Nosso sistema nem tem navegador de registros e isso não dificulta o trabalho
do usuário, pois vc tem que suprir essa limitação com pesquisas mais ricas
e agéis.

Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir essa
tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
todos os registros da mesma maneira, só que de modo mais custoso?

Como vc controla a transação, visto que aparentemente vc não usa mais Nested
Datasets?

Abraços,

Fabricio

Em 26 de julho de 2010 19:45, Eny Urias enyur...@yahoo.com.br escreveu:



 Vamos fazer o seguinte

 Utilize uma ferramenta tracer e depois me fala o que acontece no momento em
 que
 vc abre o cds Pai.

 No meu acontece assim: vamos imaginar uma tabela pai com 100.000
 registros... E
 uma tabela filho com 10 itens para cada pai... Então o programa vai trazer
 na
 memória 1.000.000 certo?

 Eu quero carregar todos os registros do cds pai e, somente trazer os do
 filho,
 quando o ponteiro estiver no pai.. entendeu? Foi aí que eu comecei a
 utilizar o
 evento AfterScroll...


 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Andre Yahoo gyncow...@yahoo.com.br gyncowboy%40yahoo.com.br

 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Sábado, 24 de Julho de 2010 20:33:03
 Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Cara Eny,

 Não entendi o porque do problema, uma vez que ao carregar o registro
 pai, você vai estar filtrando ele, o que retornará para o registro
 mestre somente um registro, já para o filho você estará retornando todos

 os detalhes que estão vinculados com este registro mestre.

 Mas você disse: quando o CDS carrega os registros do Master, ele tras
 também, para cada registro pai, todos os registros do filho, quer dizer
 que estava retornando todos os mestres ? Para a programação C/S você
 retorna somente um registro mestre, que é o que o usuário vai trabalhar
 nele, não precisa retornar todos os registros. Se era essa a situação, o

 problema era estrutural e com erro de programação, não do componente ou
 da maneira com os mesmos eram usados.

 Se não for isso que acontecia e puder explicar melhor, pois acho que
 muitos como eu podem não ter entendido a situação que ocorria muito bem.

 Atenciosamente,

 André Luis da Silveira

 Siagri - Sistemas de Gestao Ltda.

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 



  

[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-27 Por tôpico Bruno Lichot
Uma boa forma é sempre conduzir pesquisas com filtros e trabalhar este trafego 
de registros através do packagerecords. Uma outra forma é colocar a navegação 
de pais e filhos inerentes a sua vizualizaçào e acontecendo por demanda.

 

Eu estou com artigos na active Delphi desde a edição 74 sobre desenvolvimento 
comercial com Delphi e DataSnap, e um dos tópicos e o tratamento 
mestre-detalhe. No meu link de downloads tem alguns exemplos sobre isso, 
inclusive o exemplo do artigo e um vídeo do FDD 2008 onde mostro este e outros 
recursos do clientdataset: http://cc.embarcadero.com/author/795118

 

Abracos

 

Bruno

 

From: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] On 
Behalf Of Eny Urias
Sent: terça-feira, 27 de julho de 2010 09:37
To: delphi-br@yahoogrupos.com.br
Subject: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

 

  

Não quero mesmo trazer todos os registros do pai... Mas, se o cliente quiser 
fazer uma simples pesquisa que me traga uns 50 registros... Mesmo assim eu nao 
quero trazer tudo...

Então eu estou fazendo assim: No evento AfterScroll do Pai eu fecho e abro o 
filho atraves do parametro enviado pelo pai... dessa forma ele só me traz os 
filhos do pai onde está o ponteiro.

Tem alguma idéia melhor? 
--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles


De: Fabricio Colombo fabricio.colombo@gmail.com 
mailto:fabricio.colombo.mva%40gmail.com 
Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Enviadas: Terça-feira, 27 de Julho de 2010 9:01:07
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

Mais isso não é uma falha, ele foi feito pra trabalhar assim, aliás, não
conheço nenhum DataSet que faça diferente. O que vc queria é que ele fizesse
*Lazy Loading*.
** http://en.wikipedia.org/wiki/Lazy_loadingNa minha opnião, quase nunca é
viável carregar todos os dados do pai, principalmente se utilizar DataSnap,
e portanto, isso foi abolido no nosso sistema.

Por exemplo, de acordo com o cliente, a mesma tabela PAI pode variar de 10
mil até mais de 4 milhões de registros, então temos que fazer o sistema
pensando no cliente de 4 milhões. Não é viável abrir a tabela inteira,
mesmo que ele não tivesse filhos, por isso o usuário consulta apenas um
registro por vez, e é o suficiente, ele não precisa de todos os registros.

Nosso sistema nem tem navegador de registros e isso não dificulta o trabalho
do usuário, pois vc tem que suprir essa limitação com pesquisas mais ricas
e agéis.

Pense um pouco na escalabilidade do sistema. E se o seu usuário abrir essa
tabela de 100.000 e clicar para ir ao último registro? Ele não vai trazer
todos os registros da mesma maneira, só que de modo mais custoso?

Como vc controla a transação, visto que aparentemente vc não usa mais Nested
Datasets?

Abraços,

Fabricio

Em 26 de julho de 2010 19:45, Eny Urias enyur...@yahoo.com.br 
mailto:enyurias%40yahoo.com.br  escreveu:



 Vamos fazer o seguinte

 Utilize uma ferramenta tracer e depois me fala o que acontece no momento em
 que
 vc abre o cds Pai.

 No meu acontece assim: vamos imaginar uma tabela pai com 100.000
 registros... E
 uma tabela filho com 10 itens para cada pai... Então o programa vai trazer
 na
 memória 1.000.000 certo?

 Eu quero carregar todos os registros do cds pai e, somente trazer os do
 filho,
 quando o ponteiro estiver no pai.. entendeu? Foi aí que eu comecei a
 utilizar o
 evento AfterScroll...


 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Andre Yahoo gyncow...@yahoo.com.br mailto:gyncowboy%40yahoo.com.br  
 gyncowboy%40yahoo.com.br

 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br  
 delphi-br%40yahoogrupos.com.br
 Enviadas: Sábado, 24 de Julho de 2010 20:33:03
 Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

 Cara Eny,

 Não entendi o porque do problema, uma vez que ao carregar o registro
 pai, você vai estar filtrando ele, o que retornará para o registro
 mestre somente um registro, já para o filho você estará retornando todos

 os detalhes que estão vinculados com este registro mestre.

 Mas você disse: quando o CDS carrega os registros do Master, ele tras
 também, para cada registro pai, todos os registros do filho, quer dizer
 que estava retornando todos os mestres ? Para a programação C/S você
 retorna somente um registro mestre, que é o que o usuário vai trabalhar
 nele, não precisa retornar todos os registros. Se era essa a situação, o

 problema era estrutural e com erro de programação, não do componente ou
 da maneira com os mesmos eram usados.

 Se não for isso que acontecia e puder explicar melhor, pois acho que
 muitos como eu podem não ter entendido a situação que ocorria muito bem.

 Atenciosamente,

 André Luis da Silveira

 Siagri - Sistemas

Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-26 Por tôpico Andre Yahoo
Cara Eny,

Não entendi o porque do problema, uma vez que ao carregar o registro 
pai, você vai estar filtrando ele, o que retornará para o registro 
mestre somente um registro, já para o filho você estará retornando todos 
os detalhes que estão vinculados com este registro mestre.

Mas você disse: quando o CDS carrega os registros do Master, ele tras 
também, para cada registro pai, todos os registros do filho, quer dizer 
que estava retornando todos os mestres ? Para a programação C/S você 
retorna somente um registro mestre, que é o que o usuário vai trabalhar 
nele, não precisa retornar todos os registros. Se era essa a situação, o 
problema era estrutural e com erro de programação, não do componente ou 
da maneira com os mesmos eram usados.

Se não for isso que acontecia e puder explicar melhor, pois acho que 
muitos como eu podem não ter entendido a situação que ocorria muito bem.


Atenciosamente,

André Luis da Silveira
Siagri - Sistemas de Gestao Ltda.

__
Fale com seus amigos  de gra�a com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 



Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-26 Por tôpico Eny Urias
Vamos fazer o seguinte

Utilize uma ferramenta tracer e depois me fala o que acontece no momento em que 
vc abre o cds Pai.

No meu acontece assim: vamos imaginar uma tabela pai com 100.000 registros... E 
uma tabela filho com 10 itens para cada pai... Então o programa vai trazer na 
memória 1.000.000 certo?

Eu quero carregar todos os registros do cds pai e, somente trazer os do  filho, 
quando o ponteiro estiver no pai.. entendeu? Foi aí que eu  comecei a utilizar 
o 
evento AfterScroll...

--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles






De: Andre Yahoo gyncow...@yahoo.com.br
Para: delphi-br@yahoogrupos.com.br
Enviadas: Sábado, 24 de Julho de 2010 20:33:03
Assunto: Re: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

  
Cara Eny,

Não entendi o porque do problema, uma vez que ao carregar o registro 
pai, você vai estar filtrando ele, o que retornará para o registro 
mestre somente um registro, já para o filho você estará retornando todos 
os detalhes que estão vinculados com este registro mestre.

Mas você disse: quando o CDS carrega os registros do Master, ele tras 
também, para cada registro pai, todos os registros do filho, quer dizer 
que estava retornando todos os mestres ? Para a programação C/S você 
retorna somente um registro mestre, que é o que o usuário vai trabalhar 
nele, não precisa retornar todos os registros. Se era essa a situação, o 
problema era estrutural e com erro de programação, não do componente ou 
da maneira com os mesmos eram usados.

Se não for isso que acontecia e puder explicar melhor, pois acho que 
muitos como eu podem não ter entendido a situação que ocorria muito bem.

Atenciosamente,

André Luis da Silveira
Siagri - Sistemas de Gestao Ltda.

__
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 


 


  

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-23 Por tôpico Fabricio Colombo
Não entendi, a idéia não é essa mesma, para cada registro do pai carregar os
filhos automaticamente.

Exemplifica o que vc constatou. O que ele tava executando
desnecessariamente.

Em 22 de julho de 2010 22:09, Eny Urias enyur...@yahoo.com.br escreveu:



 Só para deixar registrado:

 Eu usei por muito tempo esse esquema do DATASETFIELD para utilizar em
 Master/Detail... Até que um dia, utilizando a ferramenta OraTracer para
 pegar um
 comando sql do Oracle eu pude perceber que ao utilizar essa técnica, quando
 o
 CDS carrega os registros do Master, ele tras também, para cada registro
 pai,
 todos os registros do filho... Fiquei abismada com o tráfego que isso causa
 na
 rede... Quando o DBA da empresa viu disse para nunca mais utilizar dessa
 forma...

 Agora eu abro o CDS filho utilizando o mesmo parametro mas no evento
 AfterScroll
 do CDS pai...

 Alguém já fez essa verificação com outros bancos?


 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas
 um hábito- Aristóteles

 
 De: Walter Chagas (Bol) wchag...@bol.com.br wchagasj%40bol.com.br

 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Quinta-feira, 22 de Julho de 2010 14:58:28
 Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]


 Marcio,

 Este passo-a-passo meu já é bem conhecido aqui na lista. Ve se te atende:

 1) TODAS AS TABELAS ENVOLVIDAS NESTE PROCESSO TEM QUE TER CHAVE PRIMÁRIA E
 ESTRANGEIRA, DO CONTRARIO ISTO DAÍ NÃO VAI FUNCIONAR 100% ESTÁVEL.

 2) Coloque um componente TADOConnection no seu DataModule e defina as
 configurações devidas nele.

 3) Coloque um compoente TQuery no Datamodule ou então um TSQLDataSet. Vamos

 Chamá-lo de qMaster, ou sqldMaster.

 4) Coloque na propriedade SQL do qMaster, ou então na propriedade
 CommandText do sqldMaster a sentença SQL que você deseja buscar como dados
 da Tabela Master.

 5) Dê um clique duplo na qMaster. Aparecerá o FieldsEditor. Manda adicionar

 todo mundo.

 6) Em cada TField, localize a propriedade providerflags. Os campos que são
 chave primária na Tabela, ficaraão com pfInkey true nos, os demais ficou
 false. Os pfInUpdate e pfInWhere todos ficam como true (em todos os
 campos).

 7) Sete a propriedade CursorLocation da qMaster ou do sqldMaster pra
 clUseServer

 8) Se a sentença SQL da qMaster tiver parametros, ajuste as configurações
 dele, na propriedade Parameters (A não configuração do parametro irá dar
 pau nos ClientDatasets posteriormente)

 9) Coloque um componente TDatasetProvider no Datamodule. vamos chamá-lo de
 dspMaster.

 10) Aponte o Dataset dele pra qMaster ou pro sqldMaster.

 11) Abra a propriedade Options do dspMaster. Todas as subpropriedades dele
 devem ficar como false, exceto as poCascadeDeletes, poCascadeUpdates,
 poAutoRefresh. Estas tres deverão ficar setadas como True.

 12) Mude a propriedade, no dspMaster, UpdateMode para upWhereKeyOnly

 13) Coloque no seu Datamodule um componente TClientDataset. Vamos chamalo
 de
 cdsMaster.

 14) Aponte o Provider dele pra dspMaster.

 15) Ative o cdsMaster, mudando a propreiedade Active dele para True. Dê um
 clique duplo na cdsMaster. Aparecerá o FieldsEditor. Manda adicionar todo
 mundo.

 16) Repita o passo 6. Mas agora, você pode formatar os campos. Na
 propriedade DisplayLabel, coloque um nome mais legível ao usuário. Na
 propriedade Displayformat, você pode formatar valores monetários e de data
 para serem exibidos. Na propriedade EditFormat voce pode formatar estes
 valores para serem editados no cadastro. A propriedade Visible do TField,
 permite você ocultar este campo nos DBwares.

 17) Coloque no seu DataModule, um componente TDataSource. Vamos chama-lo de

 dsMaster.

 18) Aponte o Dataset dele para o cdsMaster.
 Seu Módulo Master está pronto.
 Agora vamos linkar ele ao Modulo detail.

 1) Coloque no seu DataModule, um componente TDataSource. Vamos chama-lo de
 dsMasterDetail.

 2) Aponte o Dataset dele para o dsMaster.

 3)Coloque um compoente TQuery no Datamodule ou então um TSQLDataSet. Vamos
 Chamá-lo de qDetail, ou sqldDetail.

 4) Coloque na propriedade SQL do qMaster, ou então na propriedade
 CommandText do sqldMaster a sentença SQL que você deseja buscar como dados
 da Tabela Detail, com o detalhe de que o parametro de referência na tabela
 detail, deve ter OBRIGATÓRIAMENTE o nome exato do campo chave na tabela
 master. Veja o exemplo:
 Na tabela master queremos buscar todas as MM (movimentação de material) de
 um determinado amoxarifado:

 select IDMOV, CODTMV, SERIE, NUMEROMOV, DATAEMISSAO, DATAENTREGA,
 COMPETENCIA, CODFILIAL, CODPESSOA, CODLOCALIDADE,
 CODOSATIV, CODCONTRATO, CODLOC, CODFILIALDEST, CODLOCDEST, STATUS,
 OBSERVACAO, USRCRIACAO, DATACRIACAO, USRALTERACAO,
 DATAALTERACAO, DATAEXPORTACAO, NOMEARQEXPORT, CODCCUSTO, CODDEPTO, CODAREA
 from ZMMTMOV
 Na tabela detail, queremos buscar todos os itens da MM (movimentação de
 material) de um determinado registro master

Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-23 Por tôpico Walter Chagas (Bol)
Como que é isso?

[]s


Walter Alves Chagas Junior
Belo Horizonte - MG - Brazil
wchag...@bol.com.br
http://delphitocorporerm.blogspot.com/
MSN: whitesock...@hotmail.com
SKYPE: WalterChagasJr


- Original Message - 
From: Eny Urias enyur...@yahoo.com.br
To: delphi-br@yahoogrupos.com.br
Sent: Thursday, July 22, 2010 10:09 PM
Subject: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]


Só para deixar registrado:

Eu usei por muito tempo esse esquema do DATASETFIELD para utilizar em
Master/Detail... Até que um dia, utilizando a ferramenta OraTracer para 
pegar um
comando sql do Oracle eu pude perceber que ao utilizar essa técnica, quando 
o
CDS carrega os registros do Master, ele tras também, para cada registro pai,
todos os registros do filho... Fiquei abismada com o tráfego que isso causa 
na
rede...  Quando o DBA da empresa viu disse para nunca mais utilizar dessa
forma...

Agora eu abro o CDS filho utilizando o mesmo parametro mas no evento 
AfterScroll
do CDS pai...


Alguém já fez essa verificação com outros bancos?

--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas
um hábito- Aristóteles






De: Walter Chagas (Bol) wchag...@bol.com.br
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quinta-feira, 22 de Julho de 2010 14:58:28
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]


Marcio,

Este passo-a-passo meu já é bem conhecido aqui na lista. Ve se te atende:

1) TODAS AS TABELAS ENVOLVIDAS NESTE PROCESSO TEM QUE TER CHAVE PRIMÁRIA E
ESTRANGEIRA, DO CONTRARIO ISTO DAÍ NÃO VAI FUNCIONAR 100% ESTÁVEL.

2) Coloque um componente TADOConnection no seu DataModule e defina as
configurações devidas nele.

3) Coloque um compoente TQuery no Datamodule ou então um TSQLDataSet. Vamos
Chamá-lo de qMaster, ou sqldMaster.

4) Coloque na propriedade SQL do qMaster, ou então na propriedade
CommandText do sqldMaster a sentença SQL que você deseja buscar como dados
da Tabela Master.

5) Dê um clique duplo na qMaster. Aparecerá o FieldsEditor. Manda adicionar
todo mundo.

6) Em cada TField, localize a propriedade providerflags. Os campos que são
chave primária na Tabela, ficaraão com pfInkey true nos, os demais ficou
false. Os pfInUpdate e pfInWhere todos ficam como true (em todos os campos).

7) Sete a propriedade CursorLocation da qMaster ou do sqldMaster pra
clUseServer

8) Se a sentença SQL da qMaster tiver parametros, ajuste as configurações
dele, na propriedade Parameters (A não configuração do parametro irá dar
pau nos ClientDatasets posteriormente)

9) Coloque um componente TDatasetProvider no Datamodule. vamos chamá-lo de
dspMaster.

10) Aponte o Dataset dele pra qMaster ou pro sqldMaster.

11) Abra a propriedade Options do dspMaster. Todas as subpropriedades dele
devem ficar como false, exceto as poCascadeDeletes, poCascadeUpdates,
poAutoRefresh. Estas tres deverão ficar setadas como True.

12) Mude a propriedade, no dspMaster, UpdateMode para upWhereKeyOnly

13) Coloque no seu Datamodule um componente TClientDataset. Vamos chamalo de
cdsMaster.

14) Aponte o Provider dele pra dspMaster.

15) Ative o cdsMaster, mudando a propreiedade Active dele para True. Dê um
clique duplo na cdsMaster. Aparecerá o FieldsEditor. Manda adicionar todo
mundo.

16) Repita o passo 6. Mas agora, você pode formatar os campos. Na
propriedade DisplayLabel, coloque um nome mais legível ao usuário. Na
propriedade Displayformat, você pode formatar valores monetários e de data
para serem exibidos. Na propriedade EditFormat voce pode formatar estes
valores para serem editados no cadastro. A propriedade Visible do TField,
permite você ocultar este campo nos DBwares.

17) Coloque no seu DataModule, um componente TDataSource. Vamos chama-lo de
dsMaster.

18) Aponte o Dataset dele para o cdsMaster.
Seu Módulo Master está pronto.
Agora vamos linkar ele ao Modulo detail.

1) Coloque no seu DataModule, um componente TDataSource. Vamos chama-lo de
dsMasterDetail.

2) Aponte o Dataset dele para o dsMaster.

3)Coloque um compoente TQuery no Datamodule ou então um TSQLDataSet. Vamos
Chamá-lo de qDetail, ou sqldDetail.

4) Coloque na propriedade SQL do qMaster, ou então na propriedade
CommandText do sqldMaster a sentença SQL que você deseja buscar como dados
da Tabela Detail, com o detalhe de que o parametro de referência na tabela
detail, deve ter OBRIGATÓRIAMENTE o nome exato do campo chave na tabela
master. Veja o exemplo:
Na tabela master queremos buscar todas as MM (movimentação de material) de
um determinado amoxarifado:

select IDMOV, CODTMV, SERIE, NUMEROMOV, DATAEMISSAO, DATAENTREGA,
COMPETENCIA, CODFILIAL, CODPESSOA, CODLOCALIDADE,
CODOSATIV, CODCONTRATO, CODLOC, CODFILIALDEST, CODLOCDEST, STATUS,
OBSERVACAO, USRCRIACAO, DATACRIACAO, USRALTERACAO,
DATAALTERACAO, DATAEXPORTACAO, NOMEARQEXPORT, CODCCUSTO, CODDEPTO, CODAREA
from ZMMTMOV
Na tabela detail, queremos buscar todos os itens da MM (movimentação de
material) de um determinado registro master:
select IDMOV

Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-23 Por tôpico Magnun Oliveira
fiquei com a mesma duvida ...

estaria no caso, trazendo todos os registros master e todos os details do
relacinamento de uma vez só ? tipo fetchall nas duas tabelas ?

Em 22 de julho de 2010 23:32, Fabricio Colombo 
fabricio.colombo@gmail.com escreveu:

 Não entendi, a idéia não é essa mesma, para cada registro do pai carregar
 os
 filhos automaticamente.

 Exemplifica o que vc constatou. O que ele tava executando
 desnecessariamente.




[As partes desta mensagem que não continham texto foram removidas]



Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-23 Por tôpico Eny Urias
Isso mesmo!

 
--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles






De: Magnun Oliveira magnunolive...@gmail.com
Para: delphi-br@yahoogrupos.com.br
Enviadas: Sexta-feira, 23 de Julho de 2010 8:46:39
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

  
fiquei com a mesma duvida ...

estaria no caso, trazendo todos os registros master e todos os details do
relacinamento de uma vez só ? tipo fetchall nas duas tabelas ?

Em 22 de julho de 2010 23:32, Fabricio Colombo 
fabricio.colombo@gmail.com escreveu:

 Não entendi, a idéia não é essa mesma, para cada registro do pai carregar
 os
 filhos automaticamente.

 Exemplifica o que vc constatou. O que ele tava executando
 desnecessariamente.



[As partes desta mensagem que não continham texto foram removidas]


 


  

[As partes desta mensagem que não continham texto foram removidas]



Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-22 Por tôpico Eny Urias
Vc vai ter dois Cds... Uma para a tabela de representante e outra para 
representante_cliente.. nessa de representante_cliente vc faz o join com a 
tabela de clientes... E na propriedade MasterSouce do cds representante_cliente 
vc coloca o DataSouce do representante e na propriedade MasterFields vc coloca 
o 
campo chave da tabela representante ufa! Deu para entender? Assim, quando 
vc 
cadastrar um novo representante e relacionar um cliente a ele, o sistema ja vai 
colocar a qual representante o cliente pertence...

 
--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles






De: Marcio mar...@sulfabril.com.br
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quinta-feira, 22 de Julho de 2010 10:29:49
Assunto: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

  

existe outra maneira ??

é que p representante esta cadastrando o cliente dele .

entao ja devo fazer a ligacao .

att. MArcio

At 13:48 21/7/2010 -0700, you wrote:


Não entendi muito bem sua pergunta Vc quer cadastrar o cliente e já 
liga-lo
ao representante? É isso?

--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um 
feito, mas
um hábito- Aristóteles


De: Marcio mailto:marcio%40sulfabril.com.brmar...@sulfabril.com.br
Para: mailto:delphi-br%40yahoogrupos.com.brdelphi-br@yahoogrupos.com.br
Enviadas: Quarta-feira, 21 de Julho de 2010 16:59:11
Assunto: [delphi-br] [CLIENTDATASET 3 TABELAS]

Olá para os entendidos ...

como é que se faz para usar ClientDataset com 3 tabelas no caso .

ex: (Respresentantes 1-N Clientes )

TAB_Representante x TAB_rep_cli x TAB_Cliente

supondo que eu esteja cadastrando o cliente, como faco para fazer a ligacao
com o representante ??

[As partes desta mensagem que não continham texto foram removidas]



[As partes desta mensagem que não continham texto foram removidas]


 


  

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-22 Por tôpico Walter Chagas (Bol)
 necessário um novo DatasourceProvider. 
E assim você pode fazer relacionamento MD em cascata ou em arvore mesmo. Só 
tome o cuidado pra não fazer bagunça e depois a coisa ficar inviável pra dar 
manutenção. 

Para fazer uma inclusão ou uma edição em um relacionamento MD: você deve dar 
insert/Edit em todos os Datasets. Para dar o post, dê post apenas nos 
details, NO MASTER PRINCIPAL SOMENTE DAR O APPLYUPDATES DIRETO. Não dê 
applyUpdates em algum detail. 

Para fazer uma exclusão em um relacionamento MD: você deve dar delete em 
todos os Datasets, SOMENTE NO MASTER DAR O APPLYUPDATES DEPOIS DO DELETE. 
Não dê applyUpdates em NENHUM detail. 


1) Sugestão de código para você dar um ApplyUpdates no Dataset: 

Deve ser colocado nos eventos: onAfterPost e onAfterDelete do ClientDataSet: 
  if (DataSet as TClientDataSet).ApplyUpdates(0)  0 then 
raise EDataBaseError.Create(Exception(exceptobject).Message) 
  else 
(DataSet as TClientDataSet).Refresh; 


2) Sugestão para abertura do ClientDataset ordenado: 
Deve ser colocado no evento onBeforeOpen do ClientDataSet: 
 (DataSet as TClientDataSet).indexname := 'DEFAULT_ORDER'; 

3) Ativar o ReconcileError em todos os ClientDatasets do DataModule: 
Declare na cláusula Private do DM: 
 procedure CdsReconcileError( 
(*$IFDEF VER150*) 
 DataSet: TCustomClientDataSet; 
(*$ELSE*) 
 DataSet: TClientDataSet; 
(*$ENDIF*) 
 E: EReconcileError; UpdateKind: 
TUpdateKind; 
 var Action: TReconcileAction); 
Em seguida, no Evento onCreate do DM, coloque o seguinte código: 
for i := 0 to ComponentCount-1 do 
begin 
  if Components[i] is TClientDataSet then 
TClientDataSet(Components[i]).OnReconcileError := CdsReconcileError; 
end; 

4) Gerar o formulário de cadastro já pronto pra ser utilizado. 

1)Crie um novo form. 

2)Coloque um DBNavigator nele ou um outro componente de navegação na tabela. 

3)Dê um clique duplo no CDS referente aquele cadastro e deixe aberto o 
Fields Editor 

4)Minimize outras telas de forma a deixar o Fields Editor emparelhado com o 
form. Marque todos os TFields 

5) Arraste todos eles ou um a um para o form. Já será criado o Label com o 
DBEdit e o Datasource refernte aquele Dataset. 


[]s
 
 
Walter Alves Chagas Junior
Belo Horizonte - MG - Brazil
wchag...@bol.com.br
http://delphitocorporerm.blogspot.com/
http://twitter.com/wchagas
MSN: whitesock...@hotmail.com
SKYPE: WalterChagasJr

- Original Message - 
From: Marcio 
To: delphi-br@yahoogrupos.com.br 
Sent: Wednesday, July 21, 2010 4:59 PM
Subject: [delphi-br] [CLIENTDATASET 3 TABELAS]


  
Olá para os entendidos ...

como é que se faz para usar ClientDataset com 3 tabelas no caso .

ex: (Respresentantes 1-N Clientes )

TAB_Representante x TAB_rep_cli x TAB_Cliente

supondo que eu esteja cadastrando o cliente, como faco para fazer a ligacao
com o representante ??




[As partes desta mensagem que não continham texto foram removidas]



Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-22 Por tôpico Eny Urias
Só para deixar registrado:

Eu usei por muito tempo esse esquema do DATASETFIELD para utilizar em 
Master/Detail... Até que um dia, utilizando a ferramenta OraTracer para pegar 
um 
comando sql do Oracle eu pude perceber que ao utilizar essa técnica, quando o 
CDS carrega os registros do Master, ele tras também, para cada registro pai, 
todos os registros do filho... Fiquei abismada com o tráfego que isso causa na 
rede...  Quando o DBA da empresa viu disse para nunca mais utilizar dessa 
forma...

Agora eu abro o CDS filho utilizando o mesmo parametro mas no evento 
AfterScroll 
do CDS pai... 


Alguém já fez essa verificação com outros bancos?

--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles






De: Walter Chagas (Bol) wchag...@bol.com.br
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quinta-feira, 22 de Julho de 2010 14:58:28
Assunto: Re: [delphi-br] [CLIENTDATASET 3 TABELAS]

  
Marcio,

Este passo-a-passo meu já é bem conhecido aqui na lista. Ve se te atende:

1) TODAS AS TABELAS ENVOLVIDAS NESTE PROCESSO TEM QUE TER CHAVE PRIMÁRIA E 
ESTRANGEIRA, DO CONTRARIO ISTO DAÍ NÃO VAI FUNCIONAR 100% ESTÁVEL. 

2) Coloque um componente TADOConnection no seu DataModule e defina as 
configurações devidas nele. 

3) Coloque um compoente TQuery no Datamodule ou então um TSQLDataSet. Vamos 
Chamá-lo de qMaster, ou sqldMaster. 

4) Coloque na propriedade SQL do qMaster, ou então na propriedade 
CommandText do sqldMaster a sentença SQL que você deseja buscar como dados 
da Tabela Master. 

5) Dê um clique duplo na qMaster. Aparecerá o FieldsEditor. Manda adicionar 
todo mundo. 

6) Em cada TField, localize a propriedade providerflags. Os campos que são 
chave primária na Tabela, ficaraão com pfInkey true nos, os demais ficou 
false. Os pfInUpdate e pfInWhere todos ficam como true (em todos os campos). 

7) Sete a propriedade CursorLocation da qMaster ou do sqldMaster pra 
clUseServer 

8) Se a sentença SQL da qMaster tiver parametros, ajuste as configurações 
dele, na propriedade Parameters (A não configuração do parametro irá dar 
pau nos ClientDatasets posteriormente) 

9) Coloque um componente TDatasetProvider no Datamodule. vamos chamá-lo de 
dspMaster. 

10) Aponte o Dataset dele pra qMaster ou pro sqldMaster. 

11) Abra a propriedade Options do dspMaster. Todas as subpropriedades dele 
devem ficar como false, exceto as poCascadeDeletes, poCascadeUpdates, 
poAutoRefresh. Estas tres deverão ficar setadas como True. 

12) Mude a propriedade, no dspMaster, UpdateMode para upWhereKeyOnly 

13) Coloque no seu Datamodule um componente TClientDataset. Vamos chamalo de 
cdsMaster. 

14) Aponte o Provider dele pra dspMaster. 

15) Ative o cdsMaster, mudando a propreiedade Active dele para True. Dê um 
clique duplo na cdsMaster. Aparecerá o FieldsEditor. Manda adicionar todo 
mundo. 

16) Repita o passo 6. Mas agora, você pode formatar os campos. Na 
propriedade DisplayLabel, coloque um nome mais legível ao usuário. Na 
propriedade Displayformat, você pode formatar valores monetários e de data 
para serem exibidos. Na propriedade EditFormat voce pode formatar estes 
valores para serem editados no cadastro. A propriedade Visible do TField, 
permite você ocultar este campo nos DBwares. 

17) Coloque no seu DataModule, um componente TDataSource. Vamos chama-lo de 
dsMaster. 

18) Aponte o Dataset dele para o cdsMaster. 
Seu Módulo Master está pronto. 
Agora vamos linkar ele ao Modulo detail. 

1) Coloque no seu DataModule, um componente TDataSource. Vamos chama-lo de 
dsMasterDetail. 

2) Aponte o Dataset dele para o dsMaster. 

3)Coloque um compoente TQuery no Datamodule ou então um TSQLDataSet. Vamos 
Chamá-lo de qDetail, ou sqldDetail. 

4) Coloque na propriedade SQL do qMaster, ou então na propriedade 
CommandText do sqldMaster a sentença SQL que você deseja buscar como dados 
da Tabela Detail, com o detalhe de que o parametro de referência na tabela 
detail, deve ter OBRIGATÓRIAMENTE o nome exato do campo chave na tabela 
master. Veja o exemplo: 
Na tabela master queremos buscar todas as MM (movimentação de material) de 
um determinado amoxarifado: 

select IDMOV, CODTMV, SERIE, NUMEROMOV, DATAEMISSAO, DATAENTREGA, 
COMPETENCIA, CODFILIAL, CODPESSOA, CODLOCALIDADE, 
CODOSATIV, CODCONTRATO, CODLOC, CODFILIALDEST, CODLOCDEST, STATUS, 
OBSERVACAO, USRCRIACAO, DATACRIACAO, USRALTERACAO, 
DATAALTERACAO, DATAEXPORTACAO, NOMEARQEXPORT, CODCCUSTO, CODDEPTO, CODAREA 
from ZMMTMOV 
Na tabela detail, queremos buscar todos os itens da MM (movimentação de 
material) de um determinado registro master: 
select IDMOV, NSEQITMMOV, IDPRD, QUANTIDADE, CODUND, LOTE, ROLO, PATRIMONIO 
from ZMMTITMMOV where IDMOV = :IDMOV 
ATENTE PARA O PARÂMETRO IDMOV. ELE É O MESMO NOME DO CAMPO MASTER IDMOV. 

5) repita os passos 5 e 6 da geração da query master (referentes ao Tfieds). 

6) Sete a propriedade CursorLocation da qDetail ou do

Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-21 Por tôpico Eny Urias
Não entendi muito bem sua pergunta Vc quer cadastrar o cliente e já liga-lo 
ao representante? É isso?

--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles






De: Marcio mar...@sulfabril.com.br
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quarta-feira, 21 de Julho de 2010 16:59:11
Assunto: [delphi-br] [CLIENTDATASET 3 TABELAS]

  
Olá para os entendidos ...

como é que se faz para usar ClientDataset com 3 tabelas no caso .

ex: (Respresentantes 1-N Clientes )

TAB_Representante x TAB_rep_cli x TAB_Cliente

supondo que eu esteja cadastrando o cliente, como faco para fazer a ligacao
com o representante ??


 


  

[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] [CLIENTDATASET 3 TABELAS]

2010-07-21 Por tôpico Rubem Rocha
Isso é um relacionamento ‘n’-pra-‘n’. A tabela TAB_rep_cli representa esse 
relacionamento.  Vejo que na verdade é um cadastro para uma única tabela, tendo 
as tabelas de representantes e de clientes como sendo de lookup.

 

Sds.

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome 
de Eny Urias
Enviada em: quarta-feira, 21 de julho de 2010 16:49
Para: delphi-br@yahoogrupos.com.br
Assunto: Res: [delphi-br] [CLIENTDATASET 3 TABELAS]

 

  

Não entendi muito bem sua pergunta Vc quer cadastrar o cliente e já liga-lo 
ao representante? É isso?

--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas 
um hábito- Aristóteles


De: Marcio mar...@sulfabril.com.br mailto:marcio%40sulfabril.com.br 
Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br 
Enviadas: Quarta-feira, 21 de Julho de 2010 16:59:11
Assunto: [delphi-br] [CLIENTDATASET 3 TABELAS]

Olá para os entendidos ...

como é que se faz para usar ClientDataset com 3 tabelas no caso .

ex: (Respresentantes 1-N Clientes )

TAB_Representante x TAB_rep_cli x TAB_Cliente

supondo que eu esteja cadastrando o cliente, como faco para fazer a ligacao
com o representante ??




 



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-19 Por tôpico Valdemir (yahoo)
Exatamente isso que eu estou fazendo agora... mudando para gravar em um banco.. 
estou estudando as possiblidades.. mas estou inclinado a usar o sqlite


From: Roni Rodrigo 
Sent: Saturday, July 17, 2010 3:11 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Re: [delphi-br] ClientDataSet - Out Of Memory


  
me metendo na conversa esse seu framework não poderia manipular um 
TDataSet ou um _RecordSet ao invés do cds?
ai vc faria a consulta normalmente como o Fabiano falou... e já passaria 
o dataset ou recordset da consulta, independente do componente que 
estiver utilizando (cds, qry, procedure... ) sem necessidade de 
armazenar esses dados duplicados na memória...
o/

Em 16/07/2010 23:44, Valdemir (yahoo) escreveu:
 na verdade .. montei um framework para gerar arquivos do governo... 
 ele gera tanto arquivos de posição fixa (como o Sintegra), como 
 arquivos separados com pipe (sped), entre outras funções ele visualiza 
 os arquivos TXT como o Sintegra faz com o arquivo dele

 neste framework eu cadastro o layout, ou seja os registros, e cada 
 campo com tamanho e tipo de arquivo... e eu ao gerar o txt, ele já faz 
 algumas conferencias de acordo com o layout

 No sped, vc tem alguns registros Ex...I030 , que tem um campo com o 
 total de registros do I030 que tem a quantidade de linhas do arquivo, 
 ou seja logo no inicio do arquivo ele já me pede o total de linhas, 
 neste caso eu tenho duas opções ou antes de gerar esta linha simulo 
 a geração para saber o total de linhas, ou então arrumo um jeito de 
 editar a linha apos eu gerar o arquivo inteiro.

 Entre gerar o arquivo e abrir o texto procurando por registro/posição 
 no arquivo txt e ai substituir, eu preferi gravar tudo em cds e 
 manipular o cds alterando o que é necessário

 From: Fabiano Moura
 Sent: Friday, July 16, 2010 10:49 PM
 To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Subject: Re: [delphi-br] ClientDataSet - Out Of Memory

 *Boa noite!*

 Valdemir, por que você pega os dados da tabela e gera no clientdataset,
 não é mais fácil você pegar (restaurar) os dados do banco e jogar 
 direto no
 arquivo texto?

 *Obrigado,*
 **
 *Fabiano*

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] [ ClientDataSet atualizar base offline ]

2010-07-19 Por tôpico Marcio


Ola Pessoal .

estou criando uma aplicação on/offline , gostaria de saber se é possivel
atualizar parcialmente o clientDataset ( mybase XML ) ??

ou seja ja baixei os dados dos clientes (sqlConetion  SqlDataset  
provider  clienteDatSet )
hoje , caso ocorra alguma alteracao nos dados cadastrais NO SERVIDOR , 
baixar so
os cliente alterados .

ps no servidor sempre que altero um dado fica gravado a data de modificacao ,,

ai poderia comparar com a ultima data do arquivo XML e tal .

mas como sobrepor isso no cliente data set ??? sem ter que baixar toda a 
tabela de cliente ..

alguem ja viu algo parecido ??

alguem tem algum material para  eu estudar??

Att, Marcio. Blumenau-SC



Re: [delphi-br] [ ClientDataSet atualizar base offline ]

2010-07-19 Por tôpico Dirlei Dionísio
Se entendi corretamente, você poderia gerar um XML/MyBase com o delta
(registros incluidos, alterados e excluidos), parsear esse delta no cliente
e efetivar as alterações no XML/MyBase definitivo.

--
Dirlei Dionísio
Novo artigo: // Não comente seu código
http://MaisQueBomCodigo.blogspot.com


Em 19 de julho de 2010 10:50, Marcio mar...@sulfabril.com.br escreveu:





 Ola Pessoal .

 estou criando uma aplicação on/offline , gostaria de saber se é possivel
 atualizar parcialmente o clientDataset ( mybase XML ) ??

 ou seja ja baixei os dados dos clientes (sqlConetion  SqlDataset 
 provider  clienteDatSet )
 hoje , caso ocorra alguma alteracao nos dados cadastrais NO SERVIDOR ,
 baixar so
 os cliente alterados .

 ps no servidor sempre que altero um dado fica gravado a data de modificacao
 ,,

 ai poderia comparar com a ultima data do arquivo XML e tal .

 mas como sobrepor isso no cliente data set ??? sem ter que baixar toda a
 tabela de cliente ..

 alguem ja viu algo parecido ??

 alguem tem algum material para eu estudar??

 Att, Marcio. Blumenau-SC



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] [ ClientDataSet atualizar base offline ]

2010-07-19 Por tôpico Marcio
Ola Dirlei !!

desculpe , mas nao captei a mensagem !!

como parsear ??

terei dois XML/CDS

cliente.xml e inclusao.xml ???


Att. MArcio






At 11:14 19/7/2010 -0300, you wrote:


Se entendi corretamente, você poderia gerar um XML/MyBase com o delta
(registros incluidos, alterados e excluidos), parsear esse delta no cliente
e efetivar as alterações no XML/MyBase definitivo.

--
Dirlei Dionísio
Novo artigo: // Não comente seu código
http://MaisQueBomCodigo.blogspot.comhttp://MaisQueBomCodigo.blogspot.com

Em 19 de julho de 2010 10:50, Marcio 
mailto:marcio%40sulfabril.com.brmar...@sulfabril.com.br escreveu:

 
 
 
 
  Ola Pessoal .
 
  estou criando uma aplicação on/offline , gostaria de saber se é possivel
  atualizar parcialmente o clientDataset ( mybase XML ) ??
 
  ou seja ja baixei os dados dos clientes (sqlConetion  SqlDataset 
  provider  clienteDatSet )
  hoje , caso ocorra alguma alteracao nos dados cadastrais NO SERVIDOR ,
  baixar so
  os cliente alterados .
 
  ps no servidor sempre que altero um dado fica gravado a data de modificacao
  ,,
 
  ai poderia comparar com a ultima data do arquivo XML e tal .
 
  mas como sobrepor isso no cliente data set ??? sem ter que baixar toda a
  tabela de cliente ..
 
  alguem ja viu algo parecido ??
 
  alguem tem algum material para eu estudar??
 
  Att, Marcio. Blumenau-SC
 

[As partes desta mensagem que não continham texto foram removidas]




[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] [ ClientDataSet atualizar base offline ]

2010-07-19 Por tôpico Rubem Nascimento da Rocha

Interessante essa discussão. Gostaria tb de saber como poderia pegar uma massa 
de dados, seja em formato MyBase ou XML Datapacket do ClientDataSet, e 
aplicá-la para ser atualizada em um banco de dados. Esa discussão é 
interessante para o caso de atuação do cliente off-line até que o servidor 
volte à operar.


Sds.
 


To: delphi-br@yahoogrupos.com.br
From: mar...@sulfabril.com.br
Date: Mon, 19 Jul 2010 13:03:50 -0300
Subject: Re: [delphi-br] [ ClientDataSet atualizar base offline ]

  



Ola Dirlei !!

desculpe , mas nao captei a mensagem !!

como parsear ??

terei dois XML/CDS

cliente.xml e inclusao.xml ???

Att. MArcio

At 11:14 19/7/2010 -0300, you wrote:


Se entendi corretamente, você poderia gerar um XML/MyBase com o delta
(registros incluidos, alterados e excluidos), parsear esse delta no cliente
e efetivar as alterações no XML/MyBase definitivo.

--
Dirlei Dionísio
Novo artigo: // Não comente seu código
http://MaisQueBomCodigo.blogspot.comhttp://MaisQueBomCodigo.blogspot.com

Em 19 de julho de 2010 10:50, Marcio 
mailto:marcio%40sulfabril.com.brmar...@sulfabril.com.br escreveu:

 
 
 
 
  Ola Pessoal .
 
  estou criando uma aplicação on/offline , gostaria de saber se é possivel
  atualizar parcialmente o clientDataset ( mybase XML ) ??
 
  ou seja ja baixei os dados dos clientes (sqlConetion  SqlDataset 
  provider  clienteDatSet )
  hoje , caso ocorra alguma alteracao nos dados cadastrais NO SERVIDOR ,
  baixar so
  os cliente alterados .
 
  ps no servidor sempre que altero um dado fica gravado a data de modificacao
  ,,
 
  ai poderia comparar com a ultima data do arquivo XML e tal .
 
  mas como sobrepor isso no cliente data set ??? sem ter que baixar toda a
  tabela de cliente ..
 
  alguem ja viu algo parecido ??
 
  alguem tem algum material para eu estudar??
 
  Att, Marcio. Blumenau-SC
 

[As partes desta mensagem que não continham texto foram removidas]



  
_
TRANSFORME SUAS FOTOS EM EMOTICONS PARA O MESSENGER. CLIQUE AQUI PARA COMEÇAR.
http://ilm.windowslive.com.br/?ocid=ILM:Live:Hotmail:Tagline:senDimensao:TRANSFORME78:-

[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] [ClientDataSet atualizar base offline ]

2010-07-19 Por tôpico Marcio
deixa eu explicar melhor para baixar a base faco desta maneira :


Aplicação servidora :

SqlDataset : Select * from transportadora

Aplicação Cliente :

Cds := TClientDataSet.Create(nil);
Cds.RemoteServer := SoapConnection1;
SoapConnection1.Connected := True;

Cds.Close;
Cds.ProviderName := 'dspTransportadora' ;
Cds.Open;
//Cds.SaveToFile('dspTransportadora' + '.XML');
Cds.SaveToFile('dspTransportadora.cds',dfBinary);
Cds.Free;
ShowMessage('arquivo baixado');
exit;


desta maneira baixei todas as transportadora , mas se eu quiser so atualizar o
dspTransportadora.xml ?

se eu fizer um select ,
SqlDataset : Select * from transportadora where DataMod = :DataMod

como faco para unir com o dspTransportadora.xml com os registros do sql ??


att. Marcio










At 07:33 19/7/2010 -0700, you wrote:


Amigo como você falou que grava a data de alteração de cada registro
você pode simplesmente gerar um SQL (select) que filtre somente pela
data de alteração, poderia ser registro a registro porque ai você
teria como comparar a data do registro do arquivo local com a do
que estar no Server.
Estando usando ClientDataSet + XML é só desativar o ChangeLog do CDS
para não manter o registro antigo.

isso resolve?

===
 Jean Barreiros
   Programador/Web-Designer
   Delphi|C++|PHP|JavaScript
   FireBird|MySql|SQLServer
   PostGree|Oracle
   msn: delphij...@gmail.com
   e-mail: delphij...@yahoo.com.br
===



De: Marcio mar...@sulfabril.com.br
Para: n...@yahoogrupos.com.br
Enviadas: Segunda-feira, 19 de Julho de 2010 11:15:58
Assunto: Re: [NDDV] [ ClientDataSet atualizar base offline ]





Daniel ,obrigado pela atençao.

Bom ..
Estou tentando(tenho) construir uma aplicacao para os vendedores externos
da empresa .

esta aplicao vai ser off-line / online.

os vendedores antes de ir ao cliente baixam a base com os dados atualizados
ou uma vez
por semana ..

estou baixando os dados via SOAP , mas o problema é se cada vez que 
atualizar a
base cliente tiver que trazer tudo , fica muito pesado .

pretendo atualizar a BASE cliente somente com os registros novos no servidor .

estive pesquisando sobre compressao de dados no datapack mais nao encontrei
nada .

é possivel isso ??

At. Marcio






[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] [ClientDataSet atualizar base offline ]

2010-07-19 Por tôpico Marcio

Bom , com a aplicacao off-line , faço insercoes ,alteracoes etc .

para enviar ao servidor (SOAP), faco assim ..


   ClientDataSet1.LoadFromFile('dspTransportadora.XML');
   ClientDataSet1.ApplyUpdates(-1);



Att. MArcio









At 15:57 19/7/2010 +, you wrote:



Interessante essa discussão. Gostaria tb de saber como poderia pegar uma 
massa de dados, seja em formato MyBase ou XML Datapacket do ClientDataSet, 
e aplicá-la para ser atualizada em um banco de dados. Esa discussão é 
interessante para o caso de atuação do cliente off-line até que o servidor 
volte à operar.

Sds.


To: mailto:delphi-br%40yahoogrupos.com.brdelphi-br@yahoogrupos.com.br
From: mailto:marcio%40sulfabril.com.brmar...@sulfabril.com.br
Date: Mon, 19 Jul 2010 13:03:50 -0300
Subject: Re: [delphi-br] [ ClientDataSet atualizar base offline ]

Ola Dirlei !!

desculpe , mas nao captei a mensagem !!

como parsear ??

terei dois XML/CDS

cliente.xml e inclusao.xml ???

Att. MArcio

At 11:14 19/7/2010 -0300, you wrote:
 
 
 Se entendi corretamente, você poderia gerar um XML/MyBase com o delta
 (registros incluidos, alterados e excluidos), parsear esse delta no cliente
 e efetivar as alterações no XML/MyBase definitivo.
 
 --
 Dirlei Dionísio
 Novo artigo: // Não comente seu código
 http://MaisQueBomCodigo.blogspot.comhttp://MaisQueBomCodigo.blogspot.c 
 omhttp://MaisQueBomCodigo.blogspot.com
 
 Em 19 de julho de 2010 10:50, Marcio
 mailto:marcio%40sulfabril.com.brmailto:marcio%40sulfabril.com.brmarc 
 i...@sulfabril.com.br escreveu:
 
  
  
  
  
   Ola Pessoal .
  
   estou criando uma aplicação on/offline , gostaria de saber se é possivel
   atualizar parcialmente o clientDataset ( mybase XML ) ??
  
   ou seja ja baixei os dados dos clientes (sqlConetion  SqlDataset 
   provider  clienteDatSet )
   hoje , caso ocorra alguma alteracao nos dados cadastrais NO SERVIDOR ,
   baixar so
   os cliente alterados .
  
   ps no servidor sempre que altero um dado fica gravado a data de 
 modificacao
   ,,
  
   ai poderia comparar com a ultima data do arquivo XML e tal .
  
   mas como sobrepor isso no cliente data set ??? sem ter que baixar toda a
   tabela de cliente ..
  
   alguem ja viu algo parecido ??
  
   alguem tem algum material para eu estudar??
  
   Att, Marcio. Blumenau-SC
  
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 


__
TRANSFORME SUAS FOTOS EM EMOTICONS PARA O MESSENGER. CLIQUE AQUI PARA COMEÇAR.
http://ilm.windowslive.com.br/?ocid=ILM:Live:Hotmail:Tagline:senDimensao:TRANSFORME78:-http://ilm.windowslive.com.br/?ocid=ILM:Live:Hotmail:Tagline:senDimensao:TRANSFORME78:-

[As partes desta mensagem que não continham texto foram removidas]




[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] [ClientDataSet atualizar base offline ]

2010-07-19 Por tôpico Dirlei Dionísio
Marcio, vou te sugerir a maneira mais simples de resolver isso que me vem à
mente agora, mas com certeza essa não é a única alternativa. Vamos lá.

PS1: Estou pertindo do princípio que a atualização ocorre apenas no sentido
SERVIDOR-CLIENTE, como eu entendi.

Na tabela transportadora, além do campo DataMod, você precisa também ter
um campo para informar que tipo de operação foi feita. Poderia ser, por
exemplo, TipoMod. Os valores possíveis seriam I, A e E,
significando, Inclusão, Alteração e Exclusão, respectivamente.

PS2: Quando uma transportadora for excluída no servidor, o registro não
poderá ser fisicamente excluído até que os cliente tenham sincronizado essa
exclusão com suas bases locais.

Para sincronizar as alterações do servidor com os clientes, você faz o
seguinte:

1 - um select * from Transportadora where
DATAMOD:DATA_E_HORA_DA_ULTIMA_SINCRONIZACAO_DO_CLIENTE

2 - carrega o dspTransportadora.cds para a memória

3 - percorre cada registro da query executada no servidor e verifica o campo
TipoMod.
- se o conteudo for:
  - I, INCLUI o registro no dataset que foi carregado com o
dspTransportadora.cds
  - A, localiza o registro no dataset que foi carregado com o
dspTransportadora.cds e faz a ALTERACAO
  - E, localiza o registro no dataset que foi carregado com o
dspTransportadora.cds e faz a EXCLUSAO

4 - salva o dataset que foi carregado com o dspTransportadora.cds em disco

5 - grava em algum lugar a data e hora da última sincronização do cliente
com o servidor.

Posso ter esquecido algum detalhe, mas de modo geral, essa é uma solução
possível para o seu problema.

Um abraço,

--
Dirlei Dionísio
Novo artigo: // Não comente seu código
http://MaisQueBomCodigo.blogspot.com


Em 19 de julho de 2010 13:31, Marcio mar...@sulfabril.com.br escreveu:



 deixa eu explicar melhor para baixar a base faco desta maneira :

 Aplicação servidora :

 SqlDataset : Select * from transportadora

 Aplicação Cliente :

 Cds := TClientDataSet.Create(nil);
 Cds.RemoteServer := SoapConnection1;
 SoapConnection1.Connected := True;

 Cds.Close;
 Cds.ProviderName := 'dspTransportadora' ;
 Cds.Open;
 //Cds.SaveToFile('dspTransportadora' + '.XML');
 Cds.SaveToFile('dspTransportadora.cds',dfBinary);
 Cds.Free;
 ShowMessage('arquivo baixado');
 exit;

 desta maneira baixei todas as transportadora , mas se eu quiser so
 atualizar o
 dspTransportadora.xml ?

 se eu fizer um select ,
 SqlDataset : Select * from transportadora where DataMod = :DataMod

 como faco para unir com o dspTransportadora.xml com os registros do sql ??

 att. Marcio

 At 07:33 19/7/2010 -0700, you wrote:
 
 
 Amigo como você falou que grava a data de alteração de cada registro
 você pode simplesmente gerar um SQL (select) que filtre somente pela
 data de alteração, poderia ser registro a registro porque ai você
 teria como comparar a data do registro do arquivo local com a do
 que estar no Server.
 Estando usando ClientDataSet + XML é só desativar o ChangeLog do CDS
 para não manter o registro antigo.
 
 isso resolve?
 
 ===
  Jean Barreiros
  Programador/Web-Designer
  Delphi|C++|PHP|JavaScript
  FireBird|MySql|SQLServer
  PostGree|Oracle
  msn: delphij...@gmail.com delphijean%40gmail.com
  e-mail: delphij...@yahoo.com.br delphijean%40yahoo.com.br
 ===
 
 
 
 De: Marcio mar...@sulfabril.com.br marcio%40sulfabril.com.br
 Para: n...@yahoogrupos.com.br NDDV%40yahoogrupos.com.br
 Enviadas: Segunda-feira, 19 de Julho de 2010 11:15:58
 Assunto: Re: [NDDV] [ ClientDataSet atualizar base offline ]
 
 
 
 
 
 Daniel ,obrigado pela atençao.
 
 Bom ..
 Estou tentando(tenho) construir uma aplicacao para os vendedores externos
 da empresa .
 
 esta aplicao vai ser off-line / online.
 
 os vendedores antes de ir ao cliente baixam a base com os dados
 atualizados
 ou uma vez
 por semana ..
 
 estou baixando os dados via SOAP , mas o problema é se cada vez que
 atualizar a
 base cliente tiver que trazer tudo , fica muito pesado .
 
 pretendo atualizar a BASE cliente somente com os registros novos no
 servidor .
 
 estive pesquisando sobre compressao de dados no datapack mais nao
 encontrei
 nada .
 
 é possivel isso ??
 
 At. Marcio

 
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





-- 
 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:
delphi-br-ow...@yahoogrupos.com.br
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:
delphi-br-unsubscr...@yahoogrupos.com.br

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




Re: [delphi-br] [ClientDataSet atualizar base offline ]

2010-07-19 Por tôpico Fabricio Colombo
Pra juntar dados, vc pode usar o método AppendData.

Vc já tem um xml salvo, então vc carrega ele normalmente. Então vc faz um
select com os registros alterados e carrega em outro ClientDataset e usa o
AppendData.

vDataSetLocal.LoadFromFile('dspTransportadora.cds');

vDataSetAlteracoes := DadosAlterados do servidor.

vDataSetLoca.AppendData(vDataSetAlteracoes.Data, True);

Acredito que funcione.

Em 19 de julho de 2010 13:31, Marcio mar...@sulfabril.com.br escreveu:



 deixa eu explicar melhor para baixar a base faco desta maneira :

 Aplicação servidora :

 SqlDataset : Select * from transportadora

 Aplicação Cliente :

 Cds := TClientDataSet.Create(nil);
 Cds.RemoteServer := SoapConnection1;
 SoapConnection1.Connected := True;

 Cds.Close;
 Cds.ProviderName := 'dspTransportadora' ;
 Cds.Open;
 //Cds.SaveToFile('dspTransportadora' + '.XML');
 Cds.SaveToFile('dspTransportadora.cds',dfBinary);
 Cds.Free;
 ShowMessage('arquivo baixado');
 exit;

 desta maneira baixei todas as transportadora , mas se eu quiser so
 atualizar o
 dspTransportadora.xml ?

 se eu fizer um select ,
 SqlDataset : Select * from transportadora where DataMod = :DataMod

 como faco para unir com o dspTransportadora.xml com os registros do sql ??

 att. Marcio


 At 07:33 19/7/2010 -0700, you wrote:
 
 
 Amigo como você falou que grava a data de alteração de cada registro
 você pode simplesmente gerar um SQL (select) que filtre somente pela
 data de alteração, poderia ser registro a registro porque ai você

 teria como comparar a data do registro do arquivo local com a do
 que estar no Server.
 Estando usando ClientDataSet + XML é só desativar o ChangeLog do CDS
 para não manter o registro antigo.

 
 isso resolve?
 
 ===
  Jean Barreiros
  Programador/Web-Designer
  Delphi|C++|PHP|JavaScript
  FireBird|MySql|SQLServer
  PostGree|Oracle
  msn: delphij...@gmail.com delphijean%40gmail.com
  e-mail: delphij...@yahoo.com.br delphijean%40yahoo.com.br
 ===
 
 
 
 De: Marcio mar...@sulfabril.com.br marcio%40sulfabril.com.br
 Para: n...@yahoogrupos.com.br NDDV%40yahoogrupos.com.br
 Enviadas: Segunda-feira, 19 de Julho de 2010 11:15:58
 Assunto: Re: [NDDV] [ ClientDataSet atualizar base offline ]
 
 
 
 
 
 Daniel ,obrigado pela atençao.

 
 Bom ..
 Estou tentando(tenho) construir uma aplicacao para os vendedores externos
 da empresa .
 
 esta aplicao vai ser off-line / online.
 
 os vendedores antes de ir ao cliente baixam a base com os dados
 atualizados
 ou uma vez
 por semana ..
 
 estou baixando os dados via SOAP , mas o problema é se cada vez que
 atualizar a
 base cliente tiver que trazer tudo , fica muito pesado .
 
 pretendo atualizar a BASE cliente somente com os registros novos no
 servidor .
 
 estive pesquisando sobre compressao de dados no datapack mais nao
 encontrei
 nada .
 
 é possivel isso ??
 
 At. Marcio
 
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





-- 
 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:
delphi-br-ow...@yahoogrupos.com.br
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:
delphi-br-unsubscr...@yahoogrupos.com.br

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




Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-18 Por tôpico Roni Rodrigo
me metendo na conversa esse seu framework não poderia manipular um 
TDataSet ou um _RecordSet ao invés do cds?
ai vc faria a consulta normalmente como o Fabiano falou... e já passaria 
o dataset ou recordset da consulta, independente do componente que 
estiver utilizando (cds, qry, procedure... ) sem necessidade de 
armazenar esses dados duplicados na memória...
o/

Em 16/07/2010 23:44, Valdemir (yahoo) escreveu:
 na verdade .. montei um framework para gerar arquivos do governo... 
 ele gera tanto arquivos de posição fixa (como o Sintegra), como 
 arquivos separados com pipe (sped), entre outras funções ele visualiza 
 os arquivos TXT como o Sintegra faz com o arquivo dele

 neste framework eu cadastro o layout, ou seja os registros, e cada 
 campo com tamanho e tipo de arquivo... e eu ao gerar o txt, ele já faz 
 algumas conferencias de acordo com o layout

 No sped, vc tem alguns registros Ex...I030 , que tem um campo com o 
 total de registros do I030 que tem a quantidade de linhas do arquivo, 
 ou seja logo no inicio do arquivo ele já me pede o total de linhas, 
 neste caso eu tenho duas opções ou antes de gerar esta linha simulo 
 a geração para saber o total de linhas, ou então arrumo um jeito de 
 editar a linha apos eu gerar o arquivo inteiro.

 Entre gerar o arquivo e abrir o texto procurando por registro/posição 
 no arquivo txt e ai substituir, eu preferi gravar tudo em cds e 
 manipular o cds alterando o que é necessário

 From: Fabiano Moura
 Sent: Friday, July 16, 2010 10:49 PM
 To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Subject: Re: [delphi-br] ClientDataSet - Out Of Memory

 *Boa noite!*

 Valdemir, por que você pega os dados da tabela e gera no clientdataset,
 não é mais fácil você pegar (restaurar) os dados do banco e jogar 
 direto no
 arquivo texto?

 *Obrigado,*
 **
 *Fabiano*



[As partes desta mensagem que não continham texto foram removidas]



Res: [delphi-br] ClientDataSet - Out Of Memory

2010-07-16 Por tôpico Jean Barreiros
Olá amigo qual versão do delphi você tá usando
e qual SPED você star gerando o txt, Fiscal ou Contabil?
 ===
Jean Barreiros
  Programador/Web-Designer
  Delphi|C++|PHP|JavaScript
  FireBird|MySql|SQLServer
  PostGree|Oracle
  msn: delphij...@gmail.com
  e-mail: delphij...@yahoo.com.br
===





De: Valdemir (yahoo) valdemi...@yahoo.com.br
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quinta-feira, 15 de Julho de 2010 18:08:49
Assunto: [delphi-br] ClientDataSet - Out Of Memory

  
Pessoal estou montando uma rotina para gerar o sped, em um movimento pequeno ok 
a rotina roda legal, mas em um movimento grande ao dar insert no CDS da erro 
Out 
Of Memory, apos processar um grande numero de registros

Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e 
jogar 
no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro leio as 
tabelas e jogo no CDS, ai no CDS já com os dados no formato do governo, faço um 
loop no cds e gravo para o txt

A principio estava usando um CDS em memoria, e ai é logico que deu o erro, mas 
ao preencher a propriedade FileName com o nome do arquivo ... ele começou a 
gerar os dados em arquivo binário, até ai ok, mas não encontrei nenhuma 
propriedade que eu informo que ele descarregue da memoria ram a cada x 
registros, então mesmo informado a propriedade nome do arquivo .. ele cria um 
arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of memory, 
e 
ai o tamanho do arquivo salta de 0 para um numero em bytes que ele conseguiu 
gerar

Da a entender que mesmo informando o FileName, ele continua trabalhando somente 
com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei que como 
esta informado o nome do arquivo, ele automaticamente ao carregar a RAM iria 
salvar os dados em disco, procurei no help mas não encontrei nenhum método ou 
propriedade para isso, antigamente no bde existia uma api para isso, mas no 
ClientDataSet eu não encontrei

Alguém faz idéia do que possa estar ocorrendo ?

Obrigado
Valdemir

[As partes desta mensagem que não continham texto foram removidas]


 


  

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-16 Por tôpico Valdemir (yahoo)
delphi 2010, sped contabil... com mais ou menos 400 mil lançamentos no ano de 
2009


From: Jean Barreiros 
Sent: Friday, July 16, 2010 1:23 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Res: [delphi-br] ClientDataSet - Out Of Memory


  
Olá amigo qual versão do delphi você tá usando
e qual SPED você star gerando o txt, Fiscal ou Contabil?
===
Jean Barreiros
Programador/Web-Designer
Delphi|C++|PHP|JavaScript
FireBird|MySql|SQLServer
PostGree|Oracle
msn: delphij...@gmail.com
e-mail: delphij...@yahoo.com.br
===


De: Valdemir (yahoo) valdemi...@yahoo.com.br
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quinta-feira, 15 de Julho de 2010 18:08:49
Assunto: [delphi-br] ClientDataSet - Out Of Memory

Pessoal estou montando uma rotina para gerar o sped, em um movimento pequeno ok 
a rotina roda legal, mas em um movimento grande ao dar insert no CDS da erro 
Out 
Of Memory, apos processar um grande numero de registros

Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e 
jogar 
no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro leio as 
tabelas e jogo no CDS, ai no CDS já com os dados no formato do governo, faço um 
loop no cds e gravo para o txt

A principio estava usando um CDS em memoria, e ai é logico que deu o erro, mas 
ao preencher a propriedade FileName com o nome do arquivo ... ele começou a 
gerar os dados em arquivo binário, até ai ok, mas não encontrei nenhuma 
propriedade que eu informo que ele descarregue da memoria ram a cada x 
registros, então mesmo informado a propriedade nome do arquivo .. ele cria um 
arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of memory, 
e 
ai o tamanho do arquivo salta de 0 para um numero em bytes que ele conseguiu 
gerar

Da a entender que mesmo informando o FileName, ele continua trabalhando somente 
com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei que como 
esta informado o nome do arquivo, ele automaticamente ao carregar a RAM iria 
salvar os dados em disco, procurei no help mas não encontrei nenhum método ou 
propriedade para isso, antigamente no bde existia uma api para isso, mas no 
ClientDataSet eu não encontrei

Alguém faz idéia do que possa estar ocorrendo ?

Obrigado
Valdemir

[As partes desta mensagem que não continham texto foram removidas]

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-16 Por tôpico Fabiano Moura
*Boa noite!*

  Valdemir, por que você pega os dados da tabela e gera no clientdataset,
não é mais fácil você pegar (restaurar) os dados do banco e jogar direto no
arquivo texto?



*Obrigado,*
**
*Fabiano*

Em 16 de julho de 2010 22:31, Valdemir (yahoo)
valdemi...@yahoo.com.brescreveu:

 delphi 2010, sped contabil... com mais ou menos 400 mil lançamentos no ano
 de 2009


 From: Jean Barreiros
 Sent: Friday, July 16, 2010 1:23 PM
 To: delphi-br@yahoogrupos.com.br
 Subject: Res: [delphi-br] ClientDataSet - Out Of Memory



 Olá amigo qual versão do delphi você tá usando
 e qual SPED você star gerando o txt, Fiscal ou Contabil?
 ===
 Jean Barreiros
 Programador/Web-Designer
 Delphi|C++|PHP|JavaScript
 FireBird|MySql|SQLServer
 PostGree|Oracle
 msn: delphij...@gmail.com
 e-mail: delphij...@yahoo.com.br
 ===

 
 De: Valdemir (yahoo) valdemi...@yahoo.com.br
 Para: delphi-br@yahoogrupos.com.br
 Enviadas: Quinta-feira, 15 de Julho de 2010 18:08:49
 Assunto: [delphi-br] ClientDataSet - Out Of Memory

 Pessoal estou montando uma rotina para gerar o sped, em um movimento
 pequeno ok
 a rotina roda legal, mas em um movimento grande ao dar insert no CDS da
 erro Out
 Of Memory, apos processar um grande numero de registros

 Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e
 jogar
 no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro leio as
 tabelas e jogo no CDS, ai no CDS já com os dados no formato do governo,
 faço um
 loop no cds e gravo para o txt

 A principio estava usando um CDS em memoria, e ai é logico que deu o erro,
 mas
 ao preencher a propriedade FileName com o nome do arquivo ... ele começou a
 gerar os dados em arquivo binário, até ai ok, mas não encontrei nenhuma
 propriedade que eu informo que ele descarregue da memoria ram a cada x
 registros, então mesmo informado a propriedade nome do arquivo .. ele cria
 um
 arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of
 memory, e
 ai o tamanho do arquivo salta de 0 para um numero em bytes que ele
 conseguiu
 gerar

 Da a entender que mesmo informando o FileName, ele continua trabalhando
 somente
 com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei que
 como
 esta informado o nome do arquivo, ele automaticamente ao carregar a RAM
 iria
 salvar os dados em disco, procurei no help mas não encontrei nenhum método
 ou
 propriedade para isso, antigamente no bde existia uma api para isso, mas no
 ClientDataSet eu não encontrei

 Alguém faz idéia do que possa estar ocorrendo ?

 Obrigado
 Valdemir

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]





 [As partes desta mensagem que não continham texto foram removidas]



 

 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 






[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-16 Por tôpico Valdemir (yahoo)
na verdade .. montei um framework para gerar arquivos do governo... ele gera 
tanto arquivos de posição fixa (como o Sintegra), como arquivos separados com 
pipe (sped), entre outras funções ele visualiza os arquivos TXT como o Sintegra 
faz com o arquivo dele

neste framework eu cadastro o layout, ou seja os registros, e cada campo com 
tamanho e tipo de arquivo... e eu ao gerar o txt, ele já faz algumas 
conferencias de acordo com o layout

No sped, vc tem alguns registros Ex...I030 , que tem um campo com o total de 
registros do I030 que tem a quantidade de linhas do arquivo, ou seja logo no 
inicio do arquivo ele já me pede o total de linhas, neste caso eu tenho duas 
opções ou antes de gerar esta linha simulo a geração para saber o total de 
linhas, ou então arrumo um jeito de editar a linha apos eu gerar o arquivo 
inteiro.

Entre gerar o arquivo e abrir o texto procurando por registro/posição no 
arquivo txt e ai substituir, eu preferi gravar tudo em cds e manipular o cds 
alterando o que é necessário


From: Fabiano Moura 
Sent: Friday, July 16, 2010 10:49 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Re: [delphi-br] ClientDataSet - Out Of Memory


  
*Boa noite!*

Valdemir, por que você pega os dados da tabela e gera no clientdataset,
não é mais fácil você pegar (restaurar) os dados do banco e jogar direto no
arquivo texto?

*Obrigado,*
**
*Fabiano*

Em 16 de julho de 2010 22:31, Valdemir (yahoo)
valdemi...@yahoo.com.brescreveu:

 delphi 2010, sped contabil... com mais ou menos 400 mil lançamentos no ano
 de 2009


 From: Jean Barreiros
 Sent: Friday, July 16, 2010 1:23 PM
 To: delphi-br@yahoogrupos.com.br
 Subject: Res: [delphi-br] ClientDataSet - Out Of Memory



 Olá amigo qual versão do delphi você tá usando
 e qual SPED você star gerando o txt, Fiscal ou Contabil?
 ===
 Jean Barreiros
 Programador/Web-Designer
 Delphi|C++|PHP|JavaScript
 FireBird|MySql|SQLServer
 PostGree|Oracle
 msn: delphij...@gmail.com
 e-mail: delphij...@yahoo.com.br
 ===

 
 De: Valdemir (yahoo) valdemi...@yahoo.com.br
 Para: delphi-br@yahoogrupos.com.br
 Enviadas: Quinta-feira, 15 de Julho de 2010 18:08:49
 Assunto: [delphi-br] ClientDataSet - Out Of Memory

 Pessoal estou montando uma rotina para gerar o sped, em um movimento
 pequeno ok
 a rotina roda legal, mas em um movimento grande ao dar insert no CDS da
 erro Out
 Of Memory, apos processar um grande numero de registros

 Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e
 jogar
 no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro leio as
 tabelas e jogo no CDS, ai no CDS já com os dados no formato do governo,
 faço um
 loop no cds e gravo para o txt

 A principio estava usando um CDS em memoria, e ai é logico que deu o erro,
 mas
 ao preencher a propriedade FileName com o nome do arquivo ... ele começou a
 gerar os dados em arquivo binário, até ai ok, mas não encontrei nenhuma
 propriedade que eu informo que ele descarregue da memoria ram a cada x
 registros, então mesmo informado a propriedade nome do arquivo .. ele cria
 um
 arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of
 memory, e
 ai o tamanho do arquivo salta de 0 para um numero em bytes que ele
 conseguiu
 gerar

 Da a entender que mesmo informando o FileName, ele continua trabalhando
 somente
 com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei que
 como
 esta informado o nome do arquivo, ele automaticamente ao carregar a RAM
 iria
 salvar os dados em disco, procurei no help mas não encontrei nenhum método
 ou
 propriedade para isso, antigamente no bde existia uma api para isso, mas no
 ClientDataSet eu não encontrei

 Alguém faz idéia do que possa estar ocorrendo ?

 Obrigado
 Valdemir

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]





 [As partes desta mensagem que não continham texto foram removidas]



 

 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] ClientDataSet - Out Of Memory

2010-07-15 Por tôpico Valdemir (yahoo)
Pessoal estou montando uma rotina para gerar o sped, em um movimento pequeno ok 
a rotina roda legal, mas em um movimento grande ao dar insert no CDS da erro 
Out Of Memory, apos processar um grande numero de registros

Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e 
jogar no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro leio 
as tabelas e jogo no CDS, ai no CDS já com os dados no formato do governo, faço 
um loop no cds e gravo para o txt

A principio estava usando um CDS em memoria, e ai é logico que deu o erro, mas 
ao preencher a propriedade FileName com o nome do arquivo ... ele começou a 
gerar os dados em arquivo binário, até ai ok, mas não encontrei nenhuma 
propriedade que eu informo que ele descarregue da memoria ram a cada x 
registros, então mesmo informado a propriedade nome do arquivo .. ele cria um 
arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of memory, 
e ai o tamanho do arquivo salta de 0 para um numero em bytes que ele conseguiu 
gerar

Da a entender que mesmo informando o FileName, ele continua trabalhando somente 
com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei que como 
esta informado o nome do arquivo, ele automaticamente ao carregar a RAM iria 
salvar os dados em disco, procurei no help mas não encontrei nenhum método ou 
propriedade para isso, antigamente no bde existia uma api para isso, mas no 
ClientDataSet eu não encontrei

Alguém faz idéia do que possa estar ocorrendo ?

Obrigado
Valdemir


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-15 Por tôpico Fabricio Colombo
Eu já tive problemas utilizando TClientDataSet em memória parecido com isso
devido a grande quantidade de registros, sem falar no desempenho deplorável.
Agora utilizo um componente da devart chamado VirtualTable que vem junto com
o ODAC da devart,  mais é pago. Se não me engano, o JEDI VCl tem um
componente chamado TJvMemoryTable, nunca usei, mais acredito ser mais
otimizado.

Em 15 de julho de 2010 18:08, Valdemir (yahoo)
valdemi...@yahoo.com.brescreveu:



 Pessoal estou montando uma rotina para gerar o sped, em um movimento
 pequeno ok a rotina roda legal, mas em um movimento grande ao dar insert no
 CDS da erro Out Of Memory, apos processar um grande numero de registros

 Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e
 jogar no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro
 leio as tabelas e jogo no CDS, ai no CDS já com os dados no formato do
 governo, faço um loop no cds e gravo para o txt

 A principio estava usando um CDS em memoria, e ai é logico que deu o erro,
 mas ao preencher a propriedade FileName com o nome do arquivo ... ele
 começou a gerar os dados em arquivo binário, até ai ok, mas não encontrei
 nenhuma propriedade que eu informo que ele descarregue da memoria ram a cada
 x registros, então mesmo informado a propriedade nome do arquivo .. ele cria
 um arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of
 memory, e ai o tamanho do arquivo salta de 0 para um numero em bytes que ele
 conseguiu gerar

 Da a entender que mesmo informando o FileName, ele continua trabalhando
 somente com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei
 que como esta informado o nome do arquivo, ele automaticamente ao carregar a
 RAM iria salvar os dados em disco, procurei no help mas não encontrei nenhum
 método ou propriedade para isso, antigamente no bde existia uma api para
 isso, mas no ClientDataSet eu não encontrei

 Alguém faz idéia do que possa estar ocorrendo ?

 Obrigado
 Valdemir

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





-- 
 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:
delphi-br-ow...@yahoogrupos.com.br
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:
delphi-br-unsubscr...@yahoogrupos.com.br

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




Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-15 Por tôpico Dirlei Dionísio
Valdemir, se você prefere jogar os dados num ClientDataset para depois
passar para um TXT, não precisa acumular todos os dados no
ClientDataset para só no final gravar no TXT. Faça isso registro a
registro, assim você só manterá em memória um registro por vez.


--
Dirlei Dionísio
http://MaisQueBomCodigo.blogspot.com



Em 15 de julho de 2010 18:19, Fabricio Colombo
fabricio.colombo@gmail.com escreveu:
 Eu já tive problemas utilizando TClientDataSet em memória parecido com isso
 devido a grande quantidade de registros, sem falar no desempenho deplorável.
 Agora utilizo um componente da devart chamado VirtualTable que vem junto com
 o ODAC da devart,  mais é pago. Se não me engano, o JEDI VCl tem um
 componente chamado TJvMemoryTable, nunca usei, mais acredito ser mais
 otimizado.

 Em 15 de julho de 2010 18:08, Valdemir (yahoo)
 valdemi...@yahoo.com.brescreveu:



 Pessoal estou montando uma rotina para gerar o sped, em um movimento
 pequeno ok a rotina roda legal, mas em um movimento grande ao dar insert no
 CDS da erro Out Of Memory, apos processar um grande numero de registros

 Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e
 jogar no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro
 leio as tabelas e jogo no CDS, ai no CDS já com os dados no formato do
 governo, faço um loop no cds e gravo para o txt

 A principio estava usando um CDS em memoria, e ai é logico que deu o erro,
 mas ao preencher a propriedade FileName com o nome do arquivo ... ele
 começou a gerar os dados em arquivo binário, até ai ok, mas não encontrei
 nenhuma propriedade que eu informo que ele descarregue da memoria ram a cada
 x registros, então mesmo informado a propriedade nome do arquivo .. ele cria
 um arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of
 memory, e ai o tamanho do arquivo salta de 0 para um numero em bytes que ele
 conseguiu gerar

 Da a entender que mesmo informando o FileName, ele continua trabalhando
 somente com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei
 que como esta informado o nome do arquivo, ele automaticamente ao carregar a
 RAM iria salvar os dados em disco, procurei no help mas não encontrei nenhum
 método ou propriedade para isso, antigamente no bde existia uma api para
 isso, mas no ClientDataSet eu não encontrei

 Alguém faz idéia do que possa estar ocorrendo ?

 Obrigado
 Valdemir

 [As partes desta mensagem que não continham texto foram removidas]





 [As partes desta mensagem que não continham texto foram removidas]



 

 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 






[delphi-br] Clientdataset grava registro antigo em XML

2010-07-13 Por tôpico Alisson
Estou gerando um arquivo de configuração, e como é apenas um registro estou 
usando um clientdataset e salvando em um xml. Estou usando 
Clientdataset.LoadFromFile e ClientDataset.SaveToFile. Funciona normalmente, 
mas o problema é que quando altero algum campo, o registro anterior é guardado 
no xml, apesar do clientdataset sempre mostrar apenas um registro. Dessa forma 
o tamanho do arquivo vai aumentando cada vez mais. Tem como atualizar o 
registro sem guardar os dados antigos no XML?

[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] Clientdataset grava registro antigo em XML

2010-07-13 Por tôpico Gustavo Teruel
Coloque assim:

 

ClientDataSet.LogChanges:=False;

 

Acredito que irá funcionar.

 

Teruel

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Alisson
Enviada em: terça-feira, 13 de julho de 2010 12:05
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Clientdataset grava registro antigo em XML

 

  

Estou gerando um arquivo de configuração, e como é apenas um registro estou
usando um clientdataset e salvando em um xml. Estou usando
Clientdataset.LoadFromFile e ClientDataset.SaveToFile. Funciona normalmente,
mas o problema é que quando altero algum campo, o registro anterior é
guardado no xml, apesar do clientdataset sempre mostrar apenas um registro.
Dessa forma o tamanho do arquivo vai aumentando cada vez mais. Tem como
atualizar o registro sem guardar os dados antigos no XML?

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Clientdataset grava registro antigo em XML

2010-07-13 Por tôpico Alisson
Gustavo, funcionou. Só tenho que ter o cuidado de colocar o código logo após a 
abertura do Clientdataset. Se colocar após editar o client não funciona. Valeu, 
muito obrigado!


Alisson





- Original Message - 
From: Gustavo Teruel 
To: delphi-br@yahoogrupos.com.br 
Sent: Tuesday, July 13, 2010 12:39 PM
Subject: RES: [delphi-br] Clientdataset grava registro antigo em XML

Coloque assim:

ClientDataSet.LogChanges:=False;
Acredito que irá funcionar.

Teruel


[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] ClientDataSet - Delete em registro com referência d e FK

2010-05-27 Por tôpico Daniel Hiromy
Boa tarde pessoal.
Usando DBX e Firebird, quero que ao tentar deletar um registro, caso
retornado um erro por relacionamento de chave estrangeira,
alterar o valor do campo VISIVEL para 'F', sem incrementar o retorno do
ApplyUpdates.
Tentei verificar a mensagem da exceção do OnReconcileError e repassar mas
não deu.
Algém pode sugerir uma solução?


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet

2010-05-03 Por tôpico Marcos Abreu Ferreira
Eny,

não uso banco de dados na aplicação. Recebo as informações por socket e as
vou salvando em um ClientDataSet e com o tempo as vou processando. Para que
ela não seja reprocessada, gostaria de marcar com um X em um determinado
campo no processamento daquele determinado registro. Logo depois do
processamento de todos os registros, quero apagar os que estiverem marcado
com o X para liberar memória. Pensei em fazer isso, pois enquanto faço o
processamento, o sistema pode estar recebendo novos registros.

Em 1 de maio de 2010 20:48, Eny Urias enyur...@yahoo.com.br escreveu:

 Você tem duas opções...

 Aplicar um filtro com o estado que vc quer e fazer um while e ir apagando
 um por um processo + demorado...

 Usar um componente para fazer o delete no banco usando um parametro com o
 estado que vc quer.. processo + rapido...

 Aí vai de vc escolher

 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas um hábito- Aristóteles

 
 De: Marcos Abreu Ferreira maferreira...@gmail.commaferreira.f2%40gmail.com
 
 Para: lista-del...@yahoogrupos.com.br lista-delphi%40yahoogrupos.com.br;
 delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Sábado, 1 de Maio de 2010 18:35:26
 Assunto: [delphi-br] ClientDataSet
 Pessoal,

 Tenho um clientdataset com 3 campos

 -Codigo (string,12)
 -Nome (string,35)
 -Estado (string,2)

 Preciso colocar uma ação num botao onde eu vá apagar os registros de um
 determinado estado no clientdataset. Como fazer?

 Att,

 marcos



[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] ClientDataSet

2010-05-03 Por tôpico Rubem Rocha
Informe-se no help do Delphi sobre a propriedade UpdateStatus do
TClientDataSet. Acredito que este seja o caminho. Veja exemplo de uso desta
propriedade (extraído do help do Delphi 7).

 

procedure TDBClientTest.ProviderUpdateData(Sender: TObject; DataSet:
TCustomClientDataSet);

 

begin

  with DataSet do

while not EOF do

begin

  if UpdateStatus = usDeleted then

LogDelete(DataSet, UserName, Date, Time);

  Next;

end;

end;

 

Sds.

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Marcos Abreu Ferreira
Enviada em: segunda-feira, 3 de maio de 2010 11:01
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] ClientDataSet

 

  

Eny,

não uso banco de dados na aplicação. Recebo as informações por socket e as
vou salvando em um ClientDataSet e com o tempo as vou processando. Para que
ela não seja reprocessada, gostaria de marcar com um X em um determinado
campo no processamento daquele determinado registro. Logo depois do
processamento de todos os registros, quero apagar os que estiverem marcado
com o X para liberar memória. Pensei em fazer isso, pois enquanto faço o
processamento, o sistema pode estar recebendo novos registros.

Em 1 de maio de 2010 20:48, Eny Urias enyur...@yahoo.com.br
mailto:enyurias%40yahoo.com.br  escreveu:

 Você tem duas opções...

 Aplicar um filtro com o estado que vc quer e fazer um while e ir apagando
 um por um processo + demorado...

 Usar um componente para fazer o delete no banco usando um parametro com o
 estado que vc quer.. processo + rapido...

 Aí vai de vc escolher

 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas um hábito- Aristóteles

 
 De: Marcos Abreu Ferreira maferreira...@gmail.com
mailto:maferreira.f2%40gmail.com maferreira.f2%40gmail.com
 
 Para: lista-del...@yahoogrupos.com.br
mailto:lista-delphi%40yahoogrupos.com.br
lista-delphi%40yahoogrupos.com.br;
 delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
delphi-br%40yahoogrupos.com.br
 Enviadas: Sábado, 1 de Maio de 2010 18:35:26
 Assunto: [delphi-br] ClientDataSet
 Pessoal,

 Tenho um clientdataset com 3 campos

 -Codigo (string,12)
 -Nome (string,35)
 -Estado (string,2)

 Preciso colocar uma ação num botao onde eu vá apagar os registros de um
 determinado estado no clientdataset. Como fazer?

 Att,

 marcos




 



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet

2010-05-03 Por tôpico José Luis Fernandes Rezende
Marcos,
Sugiro o download de uma aplicação do Guinther Pauli que exemplifica o que 
você precisa e muito mais...
http://cc.embarcadero.com/Item/17644

Se vc tem cadastro no CodeCentral da Embarcadero, basta entrar com seu login 
e baixar o source.
No topo da página tem um link LOG ON, clique ali e na próxima tela 
preencha seu dados ou clique no
Join Today para fazer um cadastro.. Eu recomendo, tem muito conteúdo 
interessante e o melhor, free.

Att, José Luis

- Original Message - 
From: Rubem Rocha rubem.ro...@dtmanaus.com.br
To: delphi-br@yahoogrupos.com.br
Sent: Monday, May 03, 2010 12:02 PM
Subject: RES: [delphi-br] ClientDataSet


Informe-se no help do Delphi sobre a propriedade UpdateStatus do
TClientDataSet. Acredito que este seja o caminho. Veja exemplo de uso desta
propriedade (extraído do help do Delphi 7).



procedure TDBClientTest.ProviderUpdateData(Sender: TObject; DataSet:
TCustomClientDataSet);



begin

  with DataSet do

while not EOF do

begin

  if UpdateStatus = usDeleted then

LogDelete(DataSet, UserName, Date, Time);

  Next;

end;

end;



Sds.



De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Marcos Abreu Ferreira
Enviada em: segunda-feira, 3 de maio de 2010 11:01
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] ClientDataSet





Eny,

não uso banco de dados na aplicação. Recebo as informações por socket e as
vou salvando em um ClientDataSet e com o tempo as vou processando. Para que
ela não seja reprocessada, gostaria de marcar com um X em um determinado
campo no processamento daquele determinado registro. Logo depois do
processamento de todos os registros, quero apagar os que estiverem marcado
com o X para liberar memória. Pensei em fazer isso, pois enquanto faço o
processamento, o sistema pode estar recebendo novos registros.

Em 1 de maio de 2010 20:48, Eny Urias enyur...@yahoo.com.br
mailto:enyurias%40yahoo.com.br  escreveu:

 Você tem duas opções...

 Aplicar um filtro com o estado que vc quer e fazer um while e ir apagando
 um por um processo + demorado...

 Usar um componente para fazer o delete no banco usando um parametro com o
 estado que vc quer.. processo + rapido...

 Aí vai de vc escolher

 --
 Eny Trova Urias

 Somos o que repetitivamente fazemos, portanto, a excelência não é um
 feito, mas um hábito- Aristóteles

 
 De: Marcos Abreu Ferreira maferreira...@gmail.com
mailto:maferreira.f2%40gmail.com maferreira.f2%40gmail.com
 
 Para: lista-del...@yahoogrupos.com.br
mailto:lista-delphi%40yahoogrupos.com.br
lista-delphi%40yahoogrupos.com.br;
 delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
delphi-br%40yahoogrupos.com.br
 Enviadas: Sábado, 1 de Maio de 2010 18:35:26
 Assunto: [delphi-br] ClientDataSet
 Pessoal,

 Tenho um clientdataset com 3 campos

 -Codigo (string,12)
 -Nome (string,35)
 -Estado (string,2)

 Preciso colocar uma ação num botao onde eu vá apagar os registros de um
 determinado estado no clientdataset. Como fazer?

 Att,

 marcos








[As partes desta mensagem que não continham texto foram removidas]





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 







[delphi-br] ClientDataSet

2010-05-01 Por tôpico Marcos Abreu Ferreira
Pessoal,

 

Tenho um clientdataset com 3 campos

- Codigo (string,12)

- Nome (string,35)

-Estado (string,2) 

 

Preciso colocar uma ação num botao onde eu vá apagar os registros de um
determinado estado no clientdataset. Como fazer?

 

Att,

 

marcos



[As partes desta mensagem que não continham texto foram removidas]



Res: [delphi-br] ClientDataSet

2010-05-01 Por tôpico Eny Urias
Você tem duas opções...

Aplicar um filtro com o estado que vc quer e fazer um while e ir apagando um 
por um processo + demorado...

Usar um componente para fazer o delete no banco usando um parametro com o 
estado que vc quer.. processo + rapido...

Aí vai de vc escolher 

 
--
Eny Trova Urias

Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, 
mas um hábito- Aristóteles






De: Marcos Abreu Ferreira maferreira...@gmail.com
Para: lista-del...@yahoogrupos.com.br; delphi-br@yahoogrupos.com.br
Enviadas: Sábado, 1 de Maio de 2010 18:35:26
Assunto: [delphi-br] ClientDataSet

  
Pessoal,

Tenho um clientdataset com 3 campos

- Codigo (string,12)

- Nome (string,35)

-Estado (string,2) 

Preciso colocar uma ação num botao onde eu vá apagar os registros de um
determinado estado no clientdataset. Como fazer?

Att,

marcos

[As partes desta mensagem que não continham texto foram removidas]


 


  

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet com Criptografia

2010-02-10 Por tôpico Dirlei
- como recuperar os dados e descriptografar antes de mostrá-lo em um dbgrid

   Uma alternativa é recuperar os dados num dataset e 
descriptografar o conteúdo em outro dataset, que estará associado ao grid.

- como fica a pra fazer um sort, por exemplo?

   Se o dataset onde os dados descriptografados serão armazenados 
for um TClientDataset, você pode usar índices no próprio ClientDataset.

Dirlei.

pcedisi escreveu:
  

 Boa noite!

 Estou querendo criptografar dados antes de gravá-los na base. Estou
 usando um componente JEDI para isso.
 Minha dúvida é: como recuperar os dados e descriptografar antes de
 mostrá-lo em um dbgrid e também como fica a pra fazer um sort, por 
 exemplo?

 Agradeço se alguém puder dar umas dicas de como proceder.

 Paulo




[delphi-br] ClientDataSet com Criptografia

2010-02-09 Por tôpico pcedisi
Boa noite!

Estou querendo criptografar dados antes de gravá-los na base. Estou
usando um componente JEDI para isso.
Minha dúvida é: como recuperar os dados e descriptografar antes de
mostrá-lo em um dbgrid e também como fica a pra fazer um sort, por exemplo?

Agradeço se alguém puder dar umas dicas de como proceder.


Paulo





[delphi-br] ClientDataSet, Master Detail, atualizacao de valor no campo master

2009-11-20 Por tôpico Magnun Oliveira
Bom dia galera 

tenho a seguinte situacao:

CDS_MASTER
--CDS_DETAIL1 ( ITEM DE CDS_MASTER)
--CDS_DETAIL2 (ITEM DE CDS_MASTER)
CDS_SUB_DETAIL3 (ITEM DE CDS_DETAIL2)

todos os fields dos ClientDataSets estao configurados
([pfInUpdate,pfInWhere,pfInKey] p/ os PK, e [pfInUpdate] para os demais), do
SqlDataSet tambem, e o DataSetProvider está com o UpdadeMod em WhereKeyOnly,
e o PropagateChanges em True;

no Evento AfterInsert de todos os CDSs, eu passo um valor temporario para o
Field ID da tabela em questao, e no Evento BeforeUpdateRecord do provider eu
chamo uma funcao que pega o ultimo id do banco e passo para o field atraves
da funcao Get_LastID;.

if UpdateKind = ukInsert then
  if SourceDS = sql_MASTER then
  DeltaDS.FieldByName('ID_MASTER).NewValue := Get_LastID
else
  if SourceDS = sql_DETAIL1 then
 DeltaDS.FieldByName('ID_DETAIL1').NewValue := Get_LastID
   else
  if SourceDS = sql_DETAIL2 then
 DeltaDS.FieldByName('ID_DETAIL2').NewValue := Get_LastID
   else
  if SourceDS = sql_SUB_DETAIL3 then
DeltaDS.FieldByName('ID_SUB_DETAIL3').NewValue := Get_LastID;


um exemplo para facilitar o entendimento:

Insiro um novo registro, atribuo o valor aleatorio para o ID_MASTER ex:
1552;
Insiro um DETAIL1, atribuo o valor aleatorio para o ID_DETAIL1 ex: 3256;
Insiro um DETAIL2, atribuo o valor aleatorio para o ID_DETAIL2 ex: 4458;
Insiro um SUB_DETAIL3, atribuo o valor aleatorio para o ID_SUB_DETAIL3 ex:
9875;

mando salvar, o metodo BeforeUpdateRecord é chamado;

A funcao Get_LastID, pega o valor do ultimo ID_MASTER cadastrado, e já
insere + 1 e retorna o valor 95; atribuo esse valor ao Field ID_MASTER. OK;
quando passa para o sql_DETAIL1, faço a mesma coisa, é retornado o valor
852;
porem dá um erro de violacao de chave estrangeira pois o Field ID_MASTER do
DeltaDS do CDS_DETAIL1 ainda está com o valor antigo ( 1552 );

teoricamente o provider, apos eu alterar o valor do ID do CDS_MASTER, nao
deveria passar essa altualização para todos os IDs vinculados a ele ?

vlw.


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Lookup Lento

2009-05-14 Por tôpico berdam
outro detalhe, procure não colocar no oncalcfields, chamadas de acesso 
ao banco, pois em todas alteração  de todos os campos, que for feita nos 
campos do cds, eu disse todas, o método calcfields é chamado, isso pode 
ocasionar lentidão.

Nivaldo Stainle escreveu:


 entendi, mas o que deixa com a pulga atrás da orelha é que com a mesma 
 sintaxe e modelo, o BDE é mais rápido do que o CDS, é isto que não 
 entendo, estou trocando para algo melhor pelo que estou lendo e no 
 entanto estou vendo outra coisa na prática, ou seja, o que eu fazia 
 com o BDE não estou fazendo com BSS, ClientDataSet, etc.; pelo menos 
 com a mesma velocidade, acho que estou fazendo algo errado, é isto que 
 quero descobrir.
 Stainle

 --- Em qua, 13/5/09, Evandro Siqueira vans...@gmail.com 
 mailto:vansiqq%40gmail.com escreveu:

 De: Evandro Siqueira vans...@gmail.com mailto:vansiqq%40gmail.com
 Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Data: Quarta-feira, 13 de Maio de 2009, 15:44

 Stainle,

 Como vc informou qual o banco de dados, estou pressupondo que seja o
 firebird e neste contexto, sugiro 2 coisas:

 1) no Seleciona( select * from ... )... substitua o * pelo nome dos
 campos que vc irá utilizar. Explicando: qd vc utiliza select * from
 tabela, provoca um fetch all nela mesmo que a instrução contenha uma
 cláusula where, o que tornará a consulta lenta, dependendo do tamanho da
 tabela

 2) se a lookup source contiver muitas linhas, sugiro procurar uma outra
 alternativa, pq este componente é perfeito para aplicações desktop mas
 em aplicações client server ou multicamadas, um lookup de muitas linhas
 pode se tornar um pesadelo em termos de performance.

 stainle2003 escreveu:
 
 
  Boa Tarde, novamente pedindo ajuda.
  Estou gradativamente mudando meu sistema de BDE para Multicamadas,
  portando deixo de usar Query para usar ClientDataSet acessando a
  máquina que tem o BSS, o que acontece:
  Preciso fazer Lookup e sei que fica lento, então na Query(BDE) em
  OnCalcFields eu uso uma função que Seleciona(select * from ...) UMA
  dentre 4 chaves(00211001, 00211***, 0021, 002*), por exemplo,
  de uma tabela para que eu ache um valor para calcular o Preço Líquido
  por exemplo da tabela principal; acontece que no BDE(query) funciona
  com uma velocidade até que razoável, mas ao mudar para o
  ClientDataSet, fica uma calamidade, até mudei a função chamada no
  OnCalcFields para ao invés de SQL eu passei a usar da forma abaixo,
  mas mesmo assim não me alegrou, será que vou ter que continuar a usar
  o BDE, neste caso ???
  procedure TDados.ver_desconto;
  var
  wscodigo : string;
  begin
  wscodigo := Dados.CDSEstCodes.Value;
 
  Dados.CDSDes.Close;
  Dados.CDSDes.IndexName := 'DEFAULT_ORDER';
  Dados.CDSDes.Open;
  Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
  Dados.CDSDes.SetKey;
  Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
  Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
  Dados.CDSDesSub_Ini.AsString := copy(wscodigo, 6, 1);
  Dados.CDSDesNropeca.AsString := copy(wscodigo, 8, 3);
  if Dados.CDSDes.GotoKey then
  begin
  Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
  exit;
  end;
  Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
  Dados.CDSDes.SetKey;
  Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
  Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
  Dados.CDSDesSub_Ini.AsString := copy(wscodigo, 6, 1);
  Dados.CDSDesNropeca.AsString := '***';
  if Dados.CDSDes.GotoKey then
  begin
  Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
  exit;
  end;
  Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
  Dados.CDSDes.SetKey;
  Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
  Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
  Dados.CDSDesSub_Ini.AsString := '*';
  Dados.CDSDesNropeca.AsString := '***';
  if Dados.CDSDes.GotoKey then
  begin
  Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
  exit;
  end;
  Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
  Dados.CDSDes.SetKey;
  Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
  Dados.CDSDesGrupo_Ini.AsString := '*';
  Dados.CDSDesSub_Ini.AsString := '*';
  Dados.CDSDesNropeca.AsString := '***';
  if Dados.CDSDes.GotoKey then
  begin
  Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
  end;
 
  end;
 
  procedure TDados.CDSEstCalcFields(DataSet: TDataSet);
  begin
  ver_desconto();
  Dados.CDSEstLiquido.Value := Dados.CDSEstPv1.Value * (1 -
  Dados.CDSEstDesconto.Value / 100);
  end;
 
  procedure TDados.CDSDesBeforeOpen(DataSet: TDataSet);
  begin
  Dados.CDSDes.IndexName := 'DEFAULT_ORDER';
  end;
  grato
  Stainle
 

 -- 
 []’s.

 Evandro Siqueira
 Programador de Sistemas
 L’essentiel Lingerie
 (79) 3254-5511 Ramal 218
 skype: evandro.lessentiel

Re: [delphi-br] ClientDataSet - Lookup Lento

2009-05-14 Por tôpico Nivaldo Stainle
entendi, acho que melhora muito se também colocar a função no servidor(BSS), 
não acha ?
Stainle

--- Em qui, 14/5/09, berdam berdamzi...@yahoo.com.br escreveu:


De: berdam berdamzi...@yahoo.com.br
Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
Para: delphi-br@yahoogrupos.com.br
Data: Quinta-feira, 14 de Maio de 2009, 18:43








outro detalhe, procure não colocar no oncalcfields, chamadas de acesso 
ao banco, pois em todas alteração de todos os campos, que for feita nos 
campos do cds, eu disse todas, o método calcfields é chamado, isso pode 
ocasionar lentidão.

Nivaldo Stainle escreveu:


 entendi, mas o que deixa com a pulga atrás da orelha é que com a mesma 
 sintaxe e modelo, o BDE é mais rápido do que o CDS, é isto que não 
 entendo, estou trocando para algo melhor pelo que estou lendo e no 
 entanto estou vendo outra coisa na prática, ou seja, o que eu fazia 
 com o BDE não estou fazendo com BSS, ClientDataSet, etc.; pelo menos 
 com a mesma velocidade, acho que estou fazendo algo errado, é isto que 
 quero descobrir.
 Stainle

 --- Em qua, 13/5/09, Evandro Siqueira vans...@gmail. com 
 mailto:vansiqq% 40gmail.com  escreveu:

 De: Evandro Siqueira vans...@gmail. com mailto:vansiqq% 40gmail.com 
 Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
 Para: delphi...@yahoogrup os.com.br mailto:delphi- br%40yahoogrupos .com.br
 Data: Quarta-feira, 13 de Maio de 2009, 15:44

 Stainle,

 Como vc informou qual o banco de dados, estou pressupondo que seja o
 firebird e neste contexto, sugiro 2 coisas:

 1) no Seleciona( select * from ... )... substitua o * pelo nome dos
 campos que vc irá utilizar. Explicando: qd vc utiliza select * from
 tabela, provoca um fetch all nela mesmo que a instrução contenha uma
 cláusula where, o que tornará a consulta lenta, dependendo do tamanho da
 tabela

 2) se a lookup source contiver muitas linhas, sugiro procurar uma outra
 alternativa, pq este componente é perfeito para aplicações desktop mas
 em aplicações client server ou multicamadas, um lookup de muitas linhas
 pode se tornar um pesadelo em termos de performance.

 stainle2003 escreveu:
 
 
  Boa Tarde, novamente pedindo ajuda.
  Estou gradativamente mudando meu sistema de BDE para Multicamadas,
  portando deixo de usar Query para usar ClientDataSet acessando a
  máquina que tem o BSS, o que acontece:
  Preciso fazer Lookup e sei que fica lento, então na Query(BDE) em
  OnCalcFields eu uso uma função que Seleciona(select * from ...) UMA
  dentre 4 chaves(00211001, 00211***, 0021, 002*), por exemplo,
  de uma tabela para que eu ache um valor para calcular o Preço Líquido
  por exemplo da tabela principal; acontece que no BDE(query) funciona
  com uma velocidade até que razoável, mas ao mudar para o
  ClientDataSet, fica uma calamidade, até mudei a função chamada no
  OnCalcFields para ao invés de SQL eu passei a usar da forma abaixo,
  mas mesmo assim não me alegrou, será que vou ter que continuar a usar
  o BDE, neste caso ???
  procedure TDados.ver_desconto ;
  var
  wscodigo : string;
  begin
  wscodigo := Dados.CDSEstCodes. Value;
 
  Dados.CDSDes. Close;
  Dados.CDSDes. IndexName := 'DEFAULT_ORDER' ;
  Dados.CDSDes. Open;
  Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
  Dados.CDSDes. SetKey;
  Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
  Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
  Dados.CDSDesSub_ Ini.AsString := copy(wscodigo, 6, 1);
  Dados.CDSDesNropeca .AsString := copy(wscodigo, 8, 3);
  if Dados.CDSDes. GotoKey then
  begin
  Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
  exit;
  end;
  Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
  Dados.CDSDes. SetKey;
  Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
  Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
  Dados.CDSDesSub_ Ini.AsString := copy(wscodigo, 6, 1);
  Dados.CDSDesNropeca .AsString := '***';
  if Dados.CDSDes. GotoKey then
  begin
  Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
  exit;
  end;
  Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
  Dados.CDSDes. SetKey;
  Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
  Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
  Dados.CDSDesSub_ Ini.AsString := '*';
  Dados.CDSDesNropeca .AsString := '***';
  if Dados.CDSDes. GotoKey then
  begin
  Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
  exit;
  end;
  Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
  Dados.CDSDes. SetKey;
  Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
  Dados.CDSDesGrupo_ Ini.AsString := '*';
  Dados.CDSDesSub_ Ini.AsString := '*';
  Dados.CDSDesNropeca .AsString := '***';
  if Dados.CDSDes. GotoKey then
  begin
  Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
  end;
 
  end;
 
  procedure TDados.CDSEstCalcFi elds(DataSet: TDataSet);
  begin
  ver_desconto

Re: [delphi-br] ClientDataSet - Lookup Lento

2009-05-14 Por tôpico Nivaldo Stainle
em tempo, onde você sugere que eu coloque a chamada da função que vai ao banco 
???
 
Stainle

--- Em qui, 14/5/09, berdam berdamzi...@yahoo.com.br escreveu:


De: berdam berdamzi...@yahoo.com.br
Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
Para: delphi-br@yahoogrupos.com.br
Data: Quinta-feira, 14 de Maio de 2009, 18:43








outro detalhe, procure não colocar no oncalcfields, chamadas de acesso 
ao banco, pois em todas alteração de todos os campos, que for feita nos 
campos do cds, eu disse todas, o método calcfields é chamado, isso pode 
ocasionar lentidão.

Nivaldo Stainle escreveu:


 entendi, mas o que deixa com a pulga atrás da orelha é que com a mesma 
 sintaxe e modelo, o BDE é mais rápido do que o CDS, é isto que não 
 entendo, estou trocando para algo melhor pelo que estou lendo e no 
 entanto estou vendo outra coisa na prática, ou seja, o que eu fazia 
 com o BDE não estou fazendo com BSS, ClientDataSet, etc.; pelo menos 
 com a mesma velocidade, acho que estou fazendo algo errado, é isto que 
 quero descobrir.
 Stainle

 --- Em qua, 13/5/09, Evandro Siqueira vans...@gmail. com 
 mailto:vansiqq% 40gmail.com  escreveu:

 De: Evandro Siqueira vans...@gmail. com mailto:vansiqq% 40gmail.com 
 Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
 Para: delphi...@yahoogrup os.com.br mailto:delphi- br%40yahoogrupos .com.br
 Data: Quarta-feira, 13 de Maio de 2009, 15:44

 Stainle,

 Como vc informou qual o banco de dados, estou pressupondo que seja o
 firebird e neste contexto, sugiro 2 coisas:

 1) no Seleciona( select * from ... )... substitua o * pelo nome dos
 campos que vc irá utilizar. Explicando: qd vc utiliza select * from
 tabela, provoca um fetch all nela mesmo que a instrução contenha uma
 cláusula where, o que tornará a consulta lenta, dependendo do tamanho da
 tabela

 2) se a lookup source contiver muitas linhas, sugiro procurar uma outra
 alternativa, pq este componente é perfeito para aplicações desktop mas
 em aplicações client server ou multicamadas, um lookup de muitas linhas
 pode se tornar um pesadelo em termos de performance.

 stainle2003 escreveu:
 
 
  Boa Tarde, novamente pedindo ajuda.
  Estou gradativamente mudando meu sistema de BDE para Multicamadas,
  portando deixo de usar Query para usar ClientDataSet acessando a
  máquina que tem o BSS, o que acontece:
  Preciso fazer Lookup e sei que fica lento, então na Query(BDE) em
  OnCalcFields eu uso uma função que Seleciona(select * from ...) UMA
  dentre 4 chaves(00211001, 00211***, 0021, 002*), por exemplo,
  de uma tabela para que eu ache um valor para calcular o Preço Líquido
  por exemplo da tabela principal; acontece que no BDE(query) funciona
  com uma velocidade até que razoável, mas ao mudar para o
  ClientDataSet, fica uma calamidade, até mudei a função chamada no
  OnCalcFields para ao invés de SQL eu passei a usar da forma abaixo,
  mas mesmo assim não me alegrou, será que vou ter que continuar a usar
  o BDE, neste caso ???
  procedure TDados.ver_desconto ;
  var
  wscodigo : string;
  begin
  wscodigo := Dados.CDSEstCodes. Value;
 
  Dados.CDSDes. Close;
  Dados.CDSDes. IndexName := 'DEFAULT_ORDER' ;
  Dados.CDSDes. Open;
  Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
  Dados.CDSDes. SetKey;
  Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
  Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
  Dados.CDSDesSub_ Ini.AsString := copy(wscodigo, 6, 1);
  Dados.CDSDesNropeca .AsString := copy(wscodigo, 8, 3);
  if Dados.CDSDes. GotoKey then
  begin
  Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
  exit;
  end;
  Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
  Dados.CDSDes. SetKey;
  Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
  Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
  Dados.CDSDesSub_ Ini.AsString := copy(wscodigo, 6, 1);
  Dados.CDSDesNropeca .AsString := '***';
  if Dados.CDSDes. GotoKey then
  begin
  Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
  exit;
  end;
  Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
  Dados.CDSDes. SetKey;
  Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
  Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
  Dados.CDSDesSub_ Ini.AsString := '*';
  Dados.CDSDesNropeca .AsString := '***';
  if Dados.CDSDes. GotoKey then
  begin
  Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
  exit;
  end;
  Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; nropeca';
  Dados.CDSDes. SetKey;
  Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
  Dados.CDSDesGrupo_ Ini.AsString := '*';
  Dados.CDSDesSub_ Ini.AsString := '*';
  Dados.CDSDesNropeca .AsString := '***';
  if Dados.CDSDes. GotoKey then
  begin
  Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
  end;
 
  end;
 
  procedure TDados.CDSEstCalcFi elds(DataSet: TDataSet);
  begin
  ver_desconto

Re: [delphi-br] ClientDataSet - Lookup Lento

2009-05-14 Por tôpico berdam
é, eu tbm já pensei nisso antes, fica complicado realmente, mas se puder 
armazenar isso em uma variável global fica melhor.

Nivaldo Stainle escreveu:


 em tempo, onde você sugere que eu coloque a chamada da função que vai 
 ao banco ???
  
 Stainle

 --- Em qui, 14/5/09, berdam berdamzi...@yahoo.com.br 
 mailto:berdamzinho%40yahoo.com.br escreveu:

 De: berdam berdamzi...@yahoo.com.br mailto:berdamzinho%40yahoo.com.br
 Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Data: Quinta-feira, 14 de Maio de 2009, 18:43

 outro detalhe, procure não colocar no oncalcfields, chamadas de acesso
 ao banco, pois em todas alteração de todos os campos, que for feita nos
 campos do cds, eu disse todas, o método calcfields é chamado, isso pode
 ocasionar lentidão.

 Nivaldo Stainle escreveu:
 
 
  entendi, mas o que deixa com a pulga atrás da orelha é que com a mesma
  sintaxe e modelo, o BDE é mais rápido do que o CDS, é isto que não
  entendo, estou trocando para algo melhor pelo que estou lendo e no
  entanto estou vendo outra coisa na prática, ou seja, o que eu fazia
  com o BDE não estou fazendo com BSS, ClientDataSet, etc.; pelo menos
  com a mesma velocidade, acho que estou fazendo algo errado, é isto que
  quero descobrir.
  Stainle
 
  --- Em qua, 13/5/09, Evandro Siqueira vans...@gmail. com
  mailto:vansiqq% 40gmail.com  escreveu:
 
  De: Evandro Siqueira vans...@gmail. com mailto:vansiqq% 40gmail.com 
  Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
  Para: delphi...@yahoogrup os.com.br mailto:delphi- br%40yahoogrupos 
 .com.br
  Data: Quarta-feira, 13 de Maio de 2009, 15:44
 
  Stainle,
 
  Como vc informou qual o banco de dados, estou pressupondo que seja o
  firebird e neste contexto, sugiro 2 coisas:
 
  1) no Seleciona( select * from ... )... substitua o * pelo nome dos
  campos que vc irá utilizar. Explicando: qd vc utiliza select * from
  tabela, provoca um fetch all nela mesmo que a instrução contenha uma
  cláusula where, o que tornará a consulta lenta, dependendo do tamanho da
  tabela
 
  2) se a lookup source contiver muitas linhas, sugiro procurar uma outra
  alternativa, pq este componente é perfeito para aplicações desktop mas
  em aplicações client server ou multicamadas, um lookup de muitas linhas
  pode se tornar um pesadelo em termos de performance.
 
  stainle2003 escreveu:
  
  
   Boa Tarde, novamente pedindo ajuda.
   Estou gradativamente mudando meu sistema de BDE para Multicamadas,
   portando deixo de usar Query para usar ClientDataSet acessando a
   máquina que tem o BSS, o que acontece:
   Preciso fazer Lookup e sei que fica lento, então na Query(BDE) em
   OnCalcFields eu uso uma função que Seleciona(select * from ...) UMA
   dentre 4 chaves(00211001, 00211***, 0021, 002*), por exemplo,
   de uma tabela para que eu ache um valor para calcular o Preço Líquido
   por exemplo da tabela principal; acontece que no BDE(query) funciona
   com uma velocidade até que razoável, mas ao mudar para o
   ClientDataSet, fica uma calamidade, até mudei a função chamada no
   OnCalcFields para ao invés de SQL eu passei a usar da forma abaixo,
   mas mesmo assim não me alegrou, será que vou ter que continuar a usar
   o BDE, neste caso ???
   procedure TDados.ver_desconto ;
   var
   wscodigo : string;
   begin
   wscodigo := Dados.CDSEstCodes. Value;
  
   Dados.CDSDes. Close;
   Dados.CDSDes. IndexName := 'DEFAULT_ORDER' ;
   Dados.CDSDes. Open;
   Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; 
 nropeca';
   Dados.CDSDes. SetKey;
   Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
   Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
   Dados.CDSDesSub_ Ini.AsString := copy(wscodigo, 6, 1);
   Dados.CDSDesNropeca .AsString := copy(wscodigo, 8, 3);
   if Dados.CDSDes. GotoKey then
   begin
   Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
   exit;
   end;
   Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; 
 nropeca';
   Dados.CDSDes. SetKey;
   Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
   Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
   Dados.CDSDesSub_ Ini.AsString := copy(wscodigo, 6, 1);
   Dados.CDSDesNropeca .AsString := '***';
   if Dados.CDSDes. GotoKey then
   begin
   Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
   exit;
   end;
   Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; 
 nropeca';
   Dados.CDSDes. SetKey;
   Dados.CDSDesNrolinh a.Value := StrToInt(copy( wscodigo, 1, 3));
   Dados.CDSDesGrupo_ Ini.AsString := copy(wscodigo, 5, 1);
   Dados.CDSDesSub_ Ini.AsString := '*';
   Dados.CDSDesNropeca .AsString := '***';
   if Dados.CDSDes. GotoKey then
   begin
   Dados.CDSEstDescont o.Value := Dados.CDSDesDesco05 .Value;
   exit;
   end;
   Dados.CDSDes. IndexFieldNames := 'nrolinha;grupo_ ini;sub_ini; 
 nropeca';
   Dados.CDSDes. SetKey;
   Dados.CDSDesNrolinh

[delphi-br] ClientDataSet - Lookup Lento

2009-05-13 Por tôpico stainle2003
Boa Tarde, novamente pedindo ajuda.
Estou gradativamente mudando meu sistema de BDE para Multicamadas, portando 
deixo de usar Query para usar ClientDataSet acessando a máquina que tem o BSS, 
o que acontece:
Preciso fazer Lookup e sei que fica lento, então na Query(BDE) em OnCalcFields 
eu uso uma função que Seleciona(select * from ...) UMA dentre 4 
chaves(00211001, 00211***, 0021, 002*), por exemplo, de uma tabela para 
que eu ache um valor para calcular o Preço Líquido por exemplo da tabela 
principal; acontece que no BDE(query) funciona com uma velocidade até que 
razoável, mas ao mudar para o ClientDataSet, fica uma calamidade, até mudei a 
função chamada no OnCalcFields para ao invés de SQL eu passei a usar da forma 
abaixo, mas mesmo assim não me alegrou, será que vou ter que continuar a usar o 
BDE, neste caso ???
procedure TDados.ver_desconto;
var
wscodigo : string;
begin
wscodigo := Dados.CDSEstCodes.Value;

Dados.CDSDes.Close;
Dados.CDSDes.IndexName := 'DEFAULT_ORDER';
Dados.CDSDes.Open;
Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
Dados.CDSDes.SetKey;
Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
Dados.CDSDesSub_Ini.AsString := copy(wscodigo, 6, 1);
Dados.CDSDesNropeca.AsString := copy(wscodigo, 8, 3);
if Dados.CDSDes.GotoKey then
begin
Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
exit;
end;
Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
Dados.CDSDes.SetKey;
Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
Dados.CDSDesSub_Ini.AsString := copy(wscodigo, 6, 1);
Dados.CDSDesNropeca.AsString := '***';
if Dados.CDSDes.GotoKey then
begin
Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
exit;
end;
Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
Dados.CDSDes.SetKey;
Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
Dados.CDSDesSub_Ini.AsString := '*';
Dados.CDSDesNropeca.AsString := '***';
if Dados.CDSDes.GotoKey then
begin
Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
exit;
end;
Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
Dados.CDSDes.SetKey;
Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
Dados.CDSDesGrupo_Ini.AsString := '*';
Dados.CDSDesSub_Ini.AsString := '*';
Dados.CDSDesNropeca.AsString := '***';
if Dados.CDSDes.GotoKey then
begin
Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
end;




end;






procedure TDados.CDSEstCalcFields(DataSet: TDataSet);
begin
ver_desconto();
Dados.CDSEstLiquido.Value := Dados.CDSEstPv1.Value * (1 - 
Dados.CDSEstDesconto.Value / 100);
end;

procedure TDados.CDSDesBeforeOpen(DataSet: TDataSet);
begin
Dados.CDSDes.IndexName := 'DEFAULT_ORDER';
end;
grato
Stainle



Re: [delphi-br] ClientDataSet - Lookup Lento

2009-05-13 Por tôpico Evandro Siqueira
Stainle,

Como vc informou qual o banco de dados, estou pressupondo que seja o 
firebird e neste contexto, sugiro 2 coisas:

1) no Seleciona( select * from ... )... substitua o * pelo nome dos 
campos que vc irá utilizar. Explicando: qd vc utiliza select * from 
tabela, provoca um fetch all nela mesmo que a instrução contenha uma 
cláusula where, o que tornará a consulta lenta, dependendo do tamanho da 
tabela

2) se a lookup source contiver muitas linhas, sugiro procurar uma outra 
alternativa, pq este componente é perfeito para aplicações desktop mas 
em aplicações client server ou multicamadas, um lookup de muitas linhas 
pode se tornar um pesadelo em termos de performance.


stainle2003 escreveu:


 Boa Tarde, novamente pedindo ajuda.
 Estou gradativamente mudando meu sistema de BDE para Multicamadas, 
 portando deixo de usar Query para usar ClientDataSet acessando a 
 máquina que tem o BSS, o que acontece:
 Preciso fazer Lookup e sei que fica lento, então na Query(BDE) em 
 OnCalcFields eu uso uma função que Seleciona(select * from ...) UMA 
 dentre 4 chaves(00211001, 00211***, 0021, 002*), por exemplo, 
 de uma tabela para que eu ache um valor para calcular o Preço Líquido 
 por exemplo da tabela principal; acontece que no BDE(query) funciona 
 com uma velocidade até que razoável, mas ao mudar para o 
 ClientDataSet, fica uma calamidade, até mudei a função chamada no 
 OnCalcFields para ao invés de SQL eu passei a usar da forma abaixo, 
 mas mesmo assim não me alegrou, será que vou ter que continuar a usar 
 o BDE, neste caso ???
 procedure TDados.ver_desconto;
 var
 wscodigo : string;
 begin
 wscodigo := Dados.CDSEstCodes.Value;

 Dados.CDSDes.Close;
 Dados.CDSDes.IndexName := 'DEFAULT_ORDER';
 Dados.CDSDes.Open;
 Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
 Dados.CDSDes.SetKey;
 Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
 Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
 Dados.CDSDesSub_Ini.AsString := copy(wscodigo, 6, 1);
 Dados.CDSDesNropeca.AsString := copy(wscodigo, 8, 3);
 if Dados.CDSDes.GotoKey then
 begin
 Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
 exit;
 end;
 Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
 Dados.CDSDes.SetKey;
 Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
 Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
 Dados.CDSDesSub_Ini.AsString := copy(wscodigo, 6, 1);
 Dados.CDSDesNropeca.AsString := '***';
 if Dados.CDSDes.GotoKey then
 begin
 Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
 exit;
 end;
 Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
 Dados.CDSDes.SetKey;
 Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
 Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
 Dados.CDSDesSub_Ini.AsString := '*';
 Dados.CDSDesNropeca.AsString := '***';
 if Dados.CDSDes.GotoKey then
 begin
 Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
 exit;
 end;
 Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
 Dados.CDSDes.SetKey;
 Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
 Dados.CDSDesGrupo_Ini.AsString := '*';
 Dados.CDSDesSub_Ini.AsString := '*';
 Dados.CDSDesNropeca.AsString := '***';
 if Dados.CDSDes.GotoKey then
 begin
 Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
 end;

 end;

 procedure TDados.CDSEstCalcFields(DataSet: TDataSet);
 begin
 ver_desconto();
 Dados.CDSEstLiquido.Value := Dados.CDSEstPv1.Value * (1 - 
 Dados.CDSEstDesconto.Value / 100);
 end;

 procedure TDados.CDSDesBeforeOpen(DataSet: TDataSet);
 begin
 Dados.CDSDes.IndexName := 'DEFAULT_ORDER';
 end;
 grato
 Stainle
























































































-- 
[]’s.

Evandro Siqueira
Programador de Sistemas
L’essentiel Lingerie
(79) 3254-5511 Ramal 218
skype: evandro.lessentiel





-- 
 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:
delphi-br-ow...@yahoogrupos.com.br
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:
delphi-br-unsubscr...@yahoogrupos.com.br

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




Re: [delphi-br] ClientDataSet - Lookup Lento

2009-05-13 Por tôpico Nivaldo Stainle
entendi, mas o que deixa com a pulga atrás da orelha é que com a mesma sintaxe 
e modelo, o BDE é mais rápido do que o CDS, é isto que não entendo, estou 
trocando para algo melhor pelo que estou lendo e no entanto estou vendo outra 
coisa na prática, ou seja, o que eu fazia com o BDE não estou fazendo com BSS, 
ClientDataSet, etc.; pelo menos com a mesma velocidade, acho que estou fazendo 
algo errado, é isto que quero descobrir.
Stainle

--- Em qua, 13/5/09, Evandro Siqueira vans...@gmail.com escreveu:


De: Evandro Siqueira vans...@gmail.com
Assunto: Re: [delphi-br] ClientDataSet - Lookup Lento
Para: delphi-br@yahoogrupos.com.br
Data: Quarta-feira, 13 de Maio de 2009, 15:44


Stainle,

Como vc informou qual o banco de dados, estou pressupondo que seja o 
firebird e neste contexto, sugiro 2 coisas:

1) no Seleciona( select * from ... )... substitua o * pelo nome dos 
campos que vc irá utilizar. Explicando: qd vc utiliza select * from 
tabela, provoca um fetch all nela mesmo que a instrução contenha uma 
cláusula where, o que tornará a consulta lenta, dependendo do tamanho da 
tabela

2) se a lookup source contiver muitas linhas, sugiro procurar uma outra 
alternativa, pq este componente é perfeito para aplicações desktop mas 
em aplicações client server ou multicamadas, um lookup de muitas linhas 
pode se tornar um pesadelo em termos de performance.


stainle2003 escreveu:


 Boa Tarde, novamente pedindo ajuda.
 Estou gradativamente mudando meu sistema de BDE para Multicamadas, 
 portando deixo de usar Query para usar ClientDataSet acessando a 
 máquina que tem o BSS, o que acontece:
 Preciso fazer Lookup e sei que fica lento, então na Query(BDE) em 
 OnCalcFields eu uso uma função que Seleciona(select * from ...) UMA 
 dentre 4 chaves(00211001, 00211***, 0021, 002*), por exemplo, 
 de uma tabela para que eu ache um valor para calcular o Preço Líquido 
 por exemplo da tabela principal; acontece que no BDE(query) funciona 
 com uma velocidade até que razoável, mas ao mudar para o 
 ClientDataSet, fica uma calamidade, até mudei a função chamada no 
 OnCalcFields para ao invés de SQL eu passei a usar da forma abaixo, 
 mas mesmo assim não me alegrou, será que vou ter que continuar a usar 
 o BDE, neste caso ???
 procedure TDados.ver_desconto;
 var
 wscodigo : string;
 begin
 wscodigo := Dados.CDSEstCodes.Value;

 Dados.CDSDes.Close;
 Dados.CDSDes.IndexName := 'DEFAULT_ORDER';
 Dados.CDSDes.Open;
 Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
 Dados.CDSDes.SetKey;
 Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
 Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
 Dados.CDSDesSub_Ini.AsString := copy(wscodigo, 6, 1);
 Dados.CDSDesNropeca.AsString := copy(wscodigo, 8, 3);
 if Dados.CDSDes.GotoKey then
 begin
 Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
 exit;
 end;
 Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
 Dados.CDSDes.SetKey;
 Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
 Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
 Dados.CDSDesSub_Ini.AsString := copy(wscodigo, 6, 1);
 Dados.CDSDesNropeca.AsString := '***';
 if Dados.CDSDes.GotoKey then
 begin
 Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
 exit;
 end;
 Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
 Dados.CDSDes.SetKey;
 Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
 Dados.CDSDesGrupo_Ini.AsString := copy(wscodigo, 5, 1);
 Dados.CDSDesSub_Ini.AsString := '*';
 Dados.CDSDesNropeca.AsString := '***';
 if Dados.CDSDes.GotoKey then
 begin
 Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
 exit;
 end;
 Dados.CDSDes.IndexFieldNames := 'nrolinha;grupo_ini;sub_ini;nropeca';
 Dados.CDSDes.SetKey;
 Dados.CDSDesNrolinha.Value := StrToInt(copy(wscodigo, 1, 3));
 Dados.CDSDesGrupo_Ini.AsString := '*';
 Dados.CDSDesSub_Ini.AsString := '*';
 Dados.CDSDesNropeca.AsString := '***';
 if Dados.CDSDes.GotoKey then
 begin
 Dados.CDSEstDesconto.Value := Dados.CDSDesDesco05.Value;
 end;

 end;

 procedure TDados.CDSEstCalcFields(DataSet: TDataSet);
 begin
 ver_desconto();
 Dados.CDSEstLiquido.Value := Dados.CDSEstPv1.Value * (1 - 
 Dados.CDSEstDesconto.Value / 100);
 end;

 procedure TDados.CDSDesBeforeOpen(DataSet: TDataSet);
 begin
 Dados.CDSDes.IndexName := 'DEFAULT_ORDER';
 end;
 grato
 Stainle
























































































-- 
[]’s.

Evandro Siqueira
Programador de Sistemas
L’essentiel Lingerie
(79) 3254-5511 Ramal 218
skype: evandro.lessentiel





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 






  Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Clientdataset + DataProvider + IBX + Form ShowModal

2009-05-12 Por tôpico Alex Antunes
Pessoal,
 
Problema novo e bem bem esquisito,
 
O Sistema tem um formulário novo para envio de e-mail.
 
E tem uma listagem dos e-mails cadastrados. Se consultar no IBOConsole,
com a mesma consulta SQL do sistema, aparece os e-mails.
 
No sistema, esse form é colocado ShowModal. Porém Os e-mails não
aparecem.
 
Coloquei até um botão para fechar e abrir, desabilitar os controles,
habilitar depois, mas na grid não aparece nada.
 
E não dá erro nos clientes.
 
Aqui no escritório em todas as máquinas ficam OK.
 
Preciso de alguma dica, não sei o que pode ser.
 
Alex


[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] ClientDataSet - Local

2009-05-05 Por tôpico stainle2003
bom dia amigos, estou tentando usar o CDS localmente mas estou apanhando como 
nunca;
não quero que ele tenha vínculo com banco algum, sómente arquivos local
(cds ou xml), não sei qual o melhor, não sei se coloco um nome de arquivo no 
FILENAME ou se uso o SaveToFile e depois o LoadFromFile, só sei que se preciso 
criar um campo novo tenho que apagar todos os campos no FieldDefs para depois 
criar o novo campo e mesmo assim nem sempre consigo criar, estou apanhando com 
o Clear Data e CreateDataSet, e agora está me aparecendo uma menssagem ao usar 
o CDS local :
Não é possivel criar uma nova transação porque a capacidade foi excedida, não 
sabia que existia limites de transação, aliás, nem sabia que existia transação 
para uso do CDS - Local.
Se alguém tiver alguma solução será benvinda, pois estava usando com o Paradox 
e estava funcionando e não queria usar novamente o BDE e sim o CDS local; uso 
Delphi 07

grato

Stainle



Re: [delphi-br] ClientDataSet

2008-12-03 Por tôpico Coutinho - Yahoo
Vc Colocou a Midas.dll na máquina do cliente?

Sds
Emanuel Coutinho

douglasmmm escreveu:

 Boa tarde.

 Estou fazendo uma manutenção em um sistema desenvolvido a muito tempo,
 é utilizado rxMemoriData.

 Coloquei um ClientDataSet para trabalhar dados em memória, enfim
 funciona tudo direitinho na minha maquina, mas ao colocar na maquina do
 cliente o programa simplismente não abre o form que contem o
 ClientDataSet.
 Notei que a configuração para compilar as packages foram alteradas
 (constam somente vcl;rtl;vclx;vcldb;qrpt;teeqr), alguem sabe como
 resolvo o problema sem remover o ClientDataSet?

  




Re: [delphi-br] ClientDataSet

2008-12-03 Por tôpico JB
coloque a unit MidasLib na clausula uses da unit, dessa forma não
necessita copiar o midas.dll

2008/12/3 Coutinho - Yahoo [EMAIL PROTECTED]:
 Vc Colocou a Midas.dll na máquina do cliente?

 Sds
 Emanuel Coutinho

 douglasmmm escreveu:


-- 


José Benedito
Software Developer
[EMAIL PROTECTED]
www.jbsolucoes.net
+55 19 8116-7826


[delphi-br] ClientDataSet

2008-12-02 Por tôpico douglasmmm
Boa tarde.

Estou fazendo uma manutenção em um sistema desenvolvido a muito tempo, 
é utilizado rxMemoriData.

Coloquei um ClientDataSet para trabalhar dados em memória, enfim 
funciona tudo direitinho na minha maquina, mas ao colocar na maquina do 
cliente o programa simplismente não abre o form que contem o 
ClientDataSet. 
Notei que a configuração para compilar as packages foram alteradas 
(constam somente vcl;rtl;vclx;vcldb;qrpt;teeqr), alguem sabe como 
resolvo o problema sem remover o ClientDataSet?



Re: [delphi-br] ClientDataSet

2008-12-02 Por tôpico JB
bom, como nao disse qual eh o erro q ocorre acredito q seja referente
ao midas, adicione a unit midaslib no uses do seu form com o
clientdataset

2008/12/2 douglasmmm [EMAIL PROTECTED]:
 Boa tarde.

 Estou fazendo uma manutenção em um sistema desenvolvido a muito tempo,
 é utilizado rxMemoriData.

 Coloquei um ClientDataSet para trabalhar dados em memória, enfim
 funciona tudo direitinho na minha maquina, mas ao colocar na maquina do
 cliente o programa simplismente não abre o form que contem o
 ClientDataSet.
 Notei que a configuração para compilar as packages foram alteradas
 (constam somente vcl;rtl;vclx;vcldb;qrpt;teeqr), alguem sabe como
 resolvo o problema sem remover o ClientDataSet?

-- 


José Benedito
Software Developer
[EMAIL PROTECTED]
www.jbsolucoes.net
+55 19 8116-7826


Re: NÃO FUNCIONOU RES: [delphi-br] ClientDataSet

2008-09-15 Por tôpico Rafael
Desta forma não há como fazer com propriedades de nenhum componente.
O TTable e o TClientDataSet possuem estruturas muito diferentes o que
impossibita fazer o que você quer.

Talvez a saída seja criar uma rotina que faça a leitura da estrutura e dos
dados do TTable e retorne um TClientDataSet criado e populado.


On 9/15/08, Juliano Silva - Yahoo [EMAIL PROTECTED] wrote:

   Pessoal

 Talvez eu não tenha colocado todos os dados referente ao meu problema, a
 questão é que preciso fazer um Assign de um componente TTable, e não de
 ClientDataSet para ClientDataSet...

 No meu caso, tenho um componente TTable que hora tem uma determinada
 informação, hora outra, e tenho que colocar estas informações dentro de um
 ClientDataSet as opções que foram postadas para que eu tente, funcionam se
 foram dois CDSs...

 Att.

 Juliano

 De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto:
 delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em
 nome de Evandro Ricardo Silvestre
 Enviada em: sexta-feira, 12 de setembro de 2008 08:49
 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Assunto: Re: [delphi-br]  ClientDataSet 

 Já tentou assim:

 cdsDestino.data := cdsOrigem.data

 Evandro

 Juliano Silva - Yahoo wrote:
 
 
  Vou tentar novamente, Pessoal tenho um ClientDataSet e quero fazer um
 Assign
  Local Data, mas em tempo de execução, ou seja, copiar os dados de um
 outro
  dataset em tempo de execução, não apenas os registros, mas a estrutura...
  alguém sabe como fazer isso?
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
  
 
 

 --
 Evandro

 [As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] clientdataset + firebird

2008-08-13 Por tôpico felipe govoni
ainda nao funcionou, to tentando pesquisa no google
mas tudo o que achei foi exatamente o que voce falou Uberdam.



2008/8/12 berdam [EMAIL PROTECTED]

   no cds em cima da chave primaria, seleciona a opção pfkey no provider
 flags e no dsp como wherekeyonly

 felipe govoni escreveu:

 
  deu o seguinte erro:
 
  Unable to find record. No key specified
 
  2008/8/12 berdam [EMAIL PROTECTED] berdamzinho%40yahoo.com.br
  mailto:berdamzinho%40yahoo.com.br berdamzinho%2540yahoo.com.br
 
   refreshrecord
  
   felipe govoni escreveu:
  
   
bom dia
   
estou começando a usar o firebird mas surgiu uma
duvida:
   
coloquei no afterpost do clientdataset:
   
cdsItens.applyupdates
cdsItens.refresh //para atualizar o campo autoincremento,
pois sempre ele fica com valor zero
   
mas sempre que faço isso ele volta para o
primeiro registro da tabela, alguem sabe como posso resolver isso?
   
--
Felipe Govoni
-
Programador
Fone 8472-8718
   
[As partes desta mensagem que não continham texto foram removidas]
   
   
  
   --
   -
   Uberdam Cavaletti
   Formado em Tecnologia da informação - Unoesc - Xxe
   Pós graduando em Desenvolvimento Java - Unoesc - Xxe
  
   Acesse http://www.curricular.com.br/berdam
  http://www.curricular.com.br/berdam
   Acesse http://passandoveneno.blogspot.com
  http://passandoveneno.blogspot.com
  
   -
  
  
  
 
  --
  Felipe Govoni
  -
  Programador
  Fone 8472-8718
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 

 --
 -
 Uberdam Cavaletti
 Formado em Tecnologia da informação - Unoesc - Xxe
 Pós graduando em Desenvolvimento Java - Unoesc - Xxe

 Acesse http://www.curricular.com.br/berdam
 Acesse http://passandoveneno.blogspot.com

 -

  




-- 
Felipe Govoni
-
Programador
Fone 8472-8718


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] clientdataset + firebird

2008-08-13 Por tôpico Berdam
deleta a uery dsp e cds  adiciona novamente e faz essas coisas.

Enfrento problmas desses tipo as vezes

Uberdam Cavaletti
Formado em Tecnologia da Informação - Unoesc - Xxe
Pós-graduado em desenvolvimento Java - Unoesc - Xxe

 http://www.curricular.com.br/berdam

Visite
http://passandoveneno.blogspot.com



--- Em qua, 13/8/08, felipe govoni [EMAIL PROTECTED] escreveu:
De: felipe govoni [EMAIL PROTECTED]
Assunto: Re: [delphi-br] clientdataset + firebird
Para: delphi-br@yahoogrupos.com.br
Data: Quarta-feira, 13 de Agosto de 2008, 9:28











ainda nao funcionou, to tentando pesquisa no google

mas tudo o que achei foi exatamente o que voce falou Uberdam.



2008/8/12 berdam berdamzinho@ yahoo.com. br



   no cds em cima da chave primaria, seleciona a opção pfkey no provider

 flags e no dsp como wherekeyonly



 felipe govoni escreveu:



 

  deu o seguinte erro:

 

  Unable to find record. No key specified

 

  2008/8/12 berdam berdamzinho@ yahoo.com. br berdamzinho% 40yahoo.com. br

  mailto:berdamzinho %40yahoo. com.br berdamzinho% 2540yahoo. com.br

 

   refreshrecord

  

   felipe govoni escreveu:

  

   

bom dia

   

estou começando a usar o firebird mas surgiu uma

duvida:

   

coloquei no afterpost do clientdataset:

   

cdsItens.applyupdat es

cdsItens.refresh //para atualizar o campo autoincremento,

pois sempre ele fica com valor zero

   

mas sempre que faço isso ele volta para o

primeiro registro da tabela, alguem sabe como posso resolver isso?

   

--

Felipe Govoni

 -

Programador

Fone 8472-8718

   

[As partes desta mensagem que não continham texto foram removidas]

   

   

  

   --

    - - - - -

   Uberdam Cavaletti

   Formado em Tecnologia da informação - Unoesc - Xxe

   Pós graduando em Desenvolvimento Java - Unoesc - Xxe

  

   Acesse http://www.curricul ar.com.br/ berdam

  http://www.curricul ar.com.br/ berdam

   Acesse http://passandovene no.blogspot. com

  http://passandovene no.blogspot. com

  

    - - - - -

  

  

  

 

  --

  Felipe Govoni

   -

  Programador

  Fone 8472-8718

 

  [As partes desta mensagem que não continham texto foram removidas]

 

 



 --

  - - - - -

 Uberdam Cavaletti

 Formado em Tecnologia da informação - Unoesc - Xxe

 Pós graduando em Desenvolvimento Java - Unoesc - Xxe



 Acesse http://www.curricul ar.com.br/ berdam

 Acesse http://passandovene no.blogspot. com



  - - - - -



  





-- 

Felipe Govoni

 -

Programador

Fone 8472-8718



[As partes desta mensagem que não continham texto foram removidas]




  




 

















  Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] clientdataset + firebird

2008-08-13 Por tôpico felipe govoni
blz vo testa aqui e depois digo se funcionou.

vlw




2008/8/13 Berdam [EMAIL PROTECTED]

   deleta a uery dsp e cds  adiciona novamente e faz essas coisas.

 Enfrento problmas desses tipo as vezes
 --
 Uberdam Cavaletti
 Formado em Tecnologia da Informação - Unoesc - Xxe
 Pós-graduado em desenvolvimento Java - Unoesc - Xxe


 http://www.curricular.com.br/berdam

 Visite
 http://passandoveneno.blogspot.com
 --

 --- Em qua, 13/8/08, felipe govoni [EMAIL 
 PROTECTED]govoni.felipe%40gmail.com
 escreveu:
 De: felipe govoni [EMAIL PROTECTED] govoni.felipe%40gmail.com
 Assunto: Re: [delphi-br] clientdataset + firebird
 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Data: Quarta-feira, 13 de Agosto de 2008, 9:28

 ainda nao funcionou, to tentando pesquisa no google

 mas tudo o que achei foi exatamente o que voce falou Uberdam.

 2008/8/12 berdam berdamzinho@ yahoo.com. br

  no cds em cima da chave primaria, seleciona a opção pfkey no provider

  flags e no dsp como wherekeyonly

 

  felipe govoni escreveu:

 

  

   deu o seguinte erro:

  

   Unable to find record. No key specified

  

   2008/8/12 berdam berdamzinho@ yahoo.com. br berdamzinho% 40yahoo.com.
 br

   mailto:berdamzinho %40yahoo. com.br berdamzinho% 2540yahoo. com.br
 

  

refreshrecord

   

felipe govoni escreveu:

   



 bom dia



 estou começando a usar o firebird mas surgiu uma

 duvida:



 coloquei no afterpost do clientdataset:



 cdsItens.applyupdat es

 cdsItens.refresh //para atualizar o campo autoincremento,

 pois sempre ele fica com valor zero



 mas sempre que faço isso ele volta para o

 primeiro registro da tabela, alguem sabe como posso resolver isso?



 --

 Felipe Govoni

  -

 Programador

 Fone 8472-8718



 [As partes desta mensagem que não continham texto foram removidas]





   

--

 - - - - -

Uberdam Cavaletti

Formado em Tecnologia da informação - Unoesc - Xxe

Pós graduando em Desenvolvimento Java - Unoesc - Xxe

   

Acesse http://www.curricul ar.com.br/ berdam

   http://www.curricul ar.com.br/ berdam

Acesse http://passandovene no.blogspot. com

   http://passandovene no.blogspot. com

   

 - - - - -

   

   

   

  

   --

   Felipe Govoni

    -

   Programador

   Fone 8472-8718

  

   [As partes desta mensagem que não continham texto foram removidas]

  

  

 

  --

   - - - - -

  Uberdam Cavaletti

  Formado em Tecnologia da informação - Unoesc - Xxe

  Pós graduando em Desenvolvimento Java - Unoesc - Xxe

 

  Acesse http://www.curricul ar.com.br/ berdam

  Acesse http://passandovene no.blogspot. com

 

   - - - - -

 

 

 

 --

 Felipe Govoni

  -

 Programador

 Fone 8472-8718

 [As partes desta mensagem que não continham texto foram removidas]











 Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
 cara @ymail.com ou @rocketmail.com.
 http://br.new.mail.yahoo.com/addresses

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Felipe Govoni
-
Programador
Fone 8472-8718


[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] clientdataset + firebird

2008-08-12 Por tôpico felipe govoni
bom dia

estou começando a usar o firebird mas surgiu uma
duvida:

coloquei no afterpost do clientdataset:

cdsItens.applyupdates
cdsItens.refresh //para atualizar o campo autoincremento,
pois sempre ele fica com valor zero

mas sempre que faço isso ele volta para o
primeiro registro da tabela, alguem sabe como posso resolver isso?




-- 
Felipe Govoni
-
Programador
Fone 8472-8718


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] clientdataset + firebird

2008-08-12 Por tôpico berdam
refreshrecord

felipe govoni escreveu:

 bom dia

 estou começando a usar o firebird mas surgiu uma
 duvida:

 coloquei no afterpost do clientdataset:

 cdsItens.applyupdates
 cdsItens.refresh //para atualizar o campo autoincremento,
 pois sempre ele fica com valor zero

 mas sempre que faço isso ele volta para o
 primeiro registro da tabela, alguem sabe como posso resolver isso?

 -- 
 Felipe Govoni
 -
 Programador
 Fone 8472-8718

 [As partes desta mensagem que não continham texto foram removidas]

  

-- 
-
Uberdam Cavaletti
Formado em Tecnologia da informação - Unoesc - Xxe
Pós graduando em Desenvolvimento Java - Unoesc - Xxe

Acesse  http://www.curricular.com.br/berdam
Acesse  http://passandoveneno.blogspot.com

-



Re: [delphi-br] clientdataset + firebird

2008-08-12 Por tôpico felipe govoni
deu o seguinte erro:

Unable to find record. No key specified



2008/8/12 berdam [EMAIL PROTECTED]

   refreshrecord

 felipe govoni escreveu:

 
  bom dia
 
  estou começando a usar o firebird mas surgiu uma
  duvida:
 
  coloquei no afterpost do clientdataset:
 
  cdsItens.applyupdates
  cdsItens.refresh //para atualizar o campo autoincremento,
  pois sempre ele fica com valor zero
 
  mas sempre que faço isso ele volta para o
  primeiro registro da tabela, alguem sabe como posso resolver isso?
 
  --
  Felipe Govoni
  -
  Programador
  Fone 8472-8718
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 

 --
 -
 Uberdam Cavaletti
 Formado em Tecnologia da informação - Unoesc - Xxe
 Pós graduando em Desenvolvimento Java - Unoesc - Xxe

 Acesse http://www.curricular.com.br/berdam
 Acesse http://passandoveneno.blogspot.com

 -

  




-- 
Felipe Govoni
-
Programador
Fone 8472-8718


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] clientdataset + firebird

2008-08-12 Por tôpico berdam
no cds em cima da chave primaria, seleciona a opção pfkey no provider 
flags e no dsp como wherekeyonly

felipe govoni escreveu:

 deu o seguinte erro:

 Unable to find record. No key specified

 2008/8/12 berdam [EMAIL PROTECTED] 
 mailto:berdamzinho%40yahoo.com.br

  refreshrecord
 
  felipe govoni escreveu:
 
  
   bom dia
  
   estou começando a usar o firebird mas surgiu uma
   duvida:
  
   coloquei no afterpost do clientdataset:
  
   cdsItens.applyupdates
   cdsItens.refresh //para atualizar o campo autoincremento,
   pois sempre ele fica com valor zero
  
   mas sempre que faço isso ele volta para o
   primeiro registro da tabela, alguem sabe como posso resolver isso?
  
   --
   Felipe Govoni
   -
   Programador
   Fone 8472-8718
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
 
  --
  -
  Uberdam Cavaletti
  Formado em Tecnologia da informação - Unoesc - Xxe
  Pós graduando em Desenvolvimento Java - Unoesc - Xxe
 
  Acesse http://www.curricular.com.br/berdam 
 http://www.curricular.com.br/berdam
  Acesse http://passandoveneno.blogspot.com 
 http://passandoveneno.blogspot.com
 
  -
 
 
 

 -- 
 Felipe Govoni
 -
 Programador
 Fone 8472-8718

 [As partes desta mensagem que não continham texto foram removidas]

  

-- 
-
Uberdam Cavaletti
Formado em Tecnologia da informação - Unoesc - Xxe
Pós graduando em Desenvolvimento Java - Unoesc - Xxe

Acesse  http://www.curricular.com.br/berdam
Acesse  http://passandoveneno.blogspot.com

-



[delphi-br] ClientDataSet

2008-08-05 Por tôpico stainle2003
Boa Tarde, pessoal estou tentando fazer uso do CommandText num 
ClientDataSet que está sómente LOCAL, salvei os dados com 
CDS1.SaveToFile('c:\usr\estoque', pfbinary) e quando abro um segundo 
CDS e fazendo CDS2.LoadFromFile('c:\usr\estoque') carrego os dados 
perfeitamente, mas agora preciso filtrar estes dados como SALDO = 0 por 
exemplo, estou tentando fazer uso do COMMANDTEXT e criar meu select 
mas não estou tento resultado, isto não é possível mesmo ?, tem outra 
maneira de fazer isto ?

grato

Stainle



RE: [delphi-br] ClientDataSet

2008-08-05 Por tôpico Rubem Nascimento da Rocha

Meu caro, vc está equivocado!

O uso da propriedade CommandText sujeita o uso do ClientDataSet com um 
DataSetProvider, e este estar ligado a um componente de consulta SQL conectado 
a um banco de dados. Ou seja, não se pode emitir um SELECT para uma base local, 
quer seja ela em formato bínário ou em formato XML packet. Se vc precisa fazer 
filtros e seleções, prefira o uso da propriedade Filter, pois o ClientDataSet 
não possui, nele embutido, um interpretador do tipo 'SQL Engine' para 
interpretar uma instrução SELECT.

Boa sorte.
Sds.



To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Tue, 5 Aug 2008 16:59:01 +
Subject: [delphi-br] ClientDataSet


Boa Tarde, pessoal estou tentando fazer uso do CommandText num
ClientDataSet que está sómente LOCAL, salvei os dados com
CDS1.SaveToFile('c:\usr\estoque', pfbinary) e quando abro um segundo
CDS e fazendo CDS2.LoadFromFile('c:\usr\estoque') carrego os dados
perfeitamente, mas agora preciso filtrar estes dados como SALDO = 0 por
exemplo, estou tentando fazer uso do COMMANDTEXT e criar meu select
mas não estou tento resultado, isto não é possível mesmo ?, tem outra
maneira de fazer isto ?

grato

Stainle


_
Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o 
Messenger! É GRÁTIS!
http://www.msn.com.br/emoticonpack

RE: [delphi-br] ClientDataSet

2008-08-05 Por tôpico Nivaldo Stainle
valeu, foi o que imaginei.
 
grato
 
Stainle

--- Em ter, 5/8/08, Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu:

De: Rubem Nascimento da Rocha [EMAIL PROTECTED]
Assunto: RE: [delphi-br] ClientDataSet
Para: delphi-br@yahoogrupos.com.br
Data: Terça-feira, 5 de Agosto de 2008, 14:08







Meu caro, vc está equivocado!

O uso da propriedade CommandText sujeita o uso do ClientDataSet com um 
DataSetProvider, e este estar ligado a um componente de consulta SQL conectado 
a um banco de dados. Ou seja, não se pode emitir um SELECT para uma base local, 
quer seja ela em formato bínário ou em formato XML packet. Se vc precisa fazer 
filtros e seleções, prefira o uso da propriedade Filter, pois o ClientDataSet 
não possui, nele embutido, um interpretador do tipo 'SQL Engine' para 
interpretar uma instrução SELECT.

Boa sorte.
Sds.

 _ _ __
To: [EMAIL PROTECTED] os.com.br
From: stainle2003@ yahoo.com. br
Date: Tue, 5 Aug 2008 16:59:01 +
Subject: [delphi-br] ClientDataSet

Boa Tarde, pessoal estou tentando fazer uso do CommandText num
ClientDataSet que está sómente LOCAL, salvei os dados com
CDS1.SaveToFile( 'c:\usr\estoque' , pfbinary) e quando abro um segundo
CDS e fazendo CDS2.LoadFromFile( 'c:\usr\estoque' ) carrego os dados
perfeitamente, mas agora preciso filtrar estes dados como SALDO = 0 por
exemplo, estou tentando fazer uso do COMMANDTEXT e criar meu select
mas não estou tento resultado, isto não é possível mesmo ?, tem outra
maneira de fazer isto ?

grato

Stainle

 _ _ _ _ _ _
Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o 
Messenger! É GRÁTIS!
http://www.msn. com.br/emoticonp ack 














  Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] ClientDataSet

2008-07-15 Por tôpico Felipe Nunes
Ola Senhores,
 
Estou desenvolvendo a NFE, e após abrir o arquivo XML pelo CDS, foram
criados campos do Tipo DataSet.
 
Queria saber dos senhores como faço para trabalhar com esse campo? 
Como faço para acessar e preencher esses campos DataSet?
 
e para melhorar dentro de um campo tipo DataSet também contém campos do
mesmo tipo.
 
 
se alguem poder mu ajudar ficarei grato


[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] ClientDataSet

2008-07-15 Por tôpico Rubem Nascimento da Rocha

Vc pode abrir um campo do tipo TDataSetField usando um outro ClientDataSet. 
Para atribuir para a propriedade DataSetField o campo TDataSetField do outro 
ClientDataSet. Informe-se mais no help do Delphi. Sds.




CC: [EMAIL PROTECTED]; delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Tue, 15 Jul 2008 13:49:16 -0300
Subject: [delphi-br] ClientDataSet

Ola Senhores,

Estou desenvolvendo a NFE, e após abrir o arquivo XML pelo CDS, foram
criados campos do Tipo DataSet.

Queria saber dos senhores como faço para trabalhar com esse campo?
Como faço para acessar e preencher esses campos DataSet?

e para melhorar dentro de um campo tipo DataSet também contém campos do
mesmo tipo.


se alguem poder mu ajudar ficarei grato

_
Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o 
Messenger! É GRÁTIS!
http://www.msn.com.br/emoticonpack

Re: [SPAM][delphi-br] ClientDataSet

2008-05-19 Por tôpico Luciano Angelini - uol
Bom dia Stainle 

Para fazer alterações em registro deve-se usar :
ClientDataSet.Edit 

e quando vc for gravar/excluir/Cancelar o registro use
nos Eventos do ClientDataSet ...
AfterCancel - ClientDataSet.CancelUpdates() ;
AfterDelete - ClientDataSet.ApplyUpdates(0) ;
AfterPost - ClientDataSet.ApplyUpdates(0) ;


Luciano Angelini
Prefeitura de Lupionópolis-Pr



stainle2003 escreveu:

 Usando a combinação Query(bde) DataSetProvider e ClientDataSet eu
 estou conseguindo incluir; usando após o POST o CDS.ApplyUpdate(0);
 quando em inclusão tudo bem, porém quando vou alterar estes dados ao
 aplicar o POST me é informado que o CDS não está em Insert ou Edit
 mode, estou pensando em usar sómente o QUERY com algumas mudanças,
 pois não estou conseguindo fazer EDIÇÃO no REGISTRO.

 alguém tem uma solução ??

 grato

 Stainle

  


[delphi-br] ClientDataSet

2008-05-16 Por tôpico stainle2003
Usando a combinação Query(bde) DataSetProvider e ClientDataSet eu 
estou conseguindo incluir; usando após o POST o CDS.ApplyUpdate(0); 
quando em inclusão tudo bem, porém quando vou alterar estes dados ao 
aplicar o POST me é informado que o CDS não está em Insert ou Edit 
mode, estou pensando em usar sómente o QUERY com algumas mudanças, 
pois não estou conseguindo fazer EDIÇÃO no REGISTRO.


alguém tem uma solução ??


grato

Stainle



[delphi-br] clientdataset feito por mim..

2008-04-15 Por tôpico Rafael Jorge
Eu criei um componente herdado do tclientdataset, coloquei alguns
funcionalidades nele, tipo uma propriedade autoapply que se tiver setada
como true após um post ele já envia um applyupdates automaticamente. Esse
meu componente vem funcionando perfeitamente mas a alguns dias um cliente
meu tem reclamado pois ele edita os preços e demais coisas da tabela de
produto, salva (da um post) e quando volta a tela ou vai ver nenhuma mudança
que ele fez o sistema aplicou no banco, e com se estivese so local (no delta
do clientdataset), o sistema ta rodando la a mais de um ano e só ta dando
isso agora. Alguém sabe o que pode ta causando isso e como corrigir? O mesmo
programa toda em vários outros clientes e so la esta dando essa bronca.. o
banco de dados é firebird 1.5

T+

---
Rafael jorge alves (Analista/desenvolvedor)

www.sistemafocus.com.br
sistema focus de gestão comercial e serviços em informatica.
---


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] clientdataset feito por mim..

2008-04-15 Por tôpico Marcos Douglas
Bem, como vc alterou o comportamento padrão do ClientDataSet, fica
difícil saber o que está errado... Somente vendo o código fonte do
componente...

--
Marcos Douglas

2008/4/15 Rafael Jorge [EMAIL PROTECTED]:
 Eu criei um componente herdado do tclientdataset, coloquei alguns
  funcionalidades nele, tipo uma propriedade autoapply que se tiver setada
  como true após um post ele já envia um applyupdates automaticamente. Esse
  meu componente vem funcionando perfeitamente mas a alguns dias um cliente
  meu tem reclamado pois ele edita os preços e demais coisas da tabela de
  produto, salva (da um post) e quando volta a tela ou vai ver nenhuma mudança
  que ele fez o sistema aplicou no banco, e com se estivese so local (no delta
  do clientdataset), o sistema ta rodando la a mais de um ano e só ta dando
  isso agora. Alguém sabe o que pode ta causando isso e como corrigir? O mesmo
  programa toda em vários outros clientes e so la esta dando essa bronca.. o
  banco de dados é firebird 1.5

  T+

  ---
  Rafael jorge alves (Analista/desenvolvedor)

  www.sistemafocus.com.br
  sistema focus de gestão comercial e serviços em informatica.
  ---


  [As partes desta mensagem que não continham texto foram removidas]


  

  --
   FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 







-- 
Marcos Douglas


Re: [delphi-br] clientdataset feito por mim..

2008-04-15 Por tôpico Rafael Jorge
so fiz o que foi dito..
colocoque um applyupdates no afterpost do componente so isso.
coloquei tambem outras coisas que nao vem ao caso pois sao especificas das
minhas necessidades e nao afetam no ocorrido pois nao tem vinculo nenhum com
post nem apply. sao rotinas pra validae se foi passado usuario e empresa,
essas coisas. o sistema vem funcionando a um ano nesse cliente é a 3 anos em
outros estabelecimentos.
t+


Em 15/04/08, Marcos Douglas [EMAIL PROTECTED] escreveu:

   Bem, como vc alterou o comportamento padrão do ClientDataSet, fica
 difícil saber o que está errado... Somente vendo o código fonte do
 componente...

 --
 Marcos Douglas

 2008/4/15 Rafael Jorge [EMAIL PROTECTED] rafael.jorge%40gmail.com
 :

  Eu criei um componente herdado do tclientdataset, coloquei alguns
  funcionalidades nele, tipo uma propriedade autoapply que se tiver setada
  como true após um post ele já envia um applyupdates automaticamente.
 Esse
  meu componente vem funcionando perfeitamente mas a alguns dias um
 cliente
  meu tem reclamado pois ele edita os preços e demais coisas da tabela de
  produto, salva (da um post) e quando volta a tela ou vai ver nenhuma
 mudança
  que ele fez o sistema aplicou no banco, e com se estivese so local (no
 delta
  do clientdataset), o sistema ta rodando la a mais de um ano e só ta
 dando
  isso agora. Alguém sabe o que pode ta causando isso e como corrigir? O
 mesmo
  programa toda em vários outros clientes e so la esta dando essa bronca..
 o
  banco de dados é firebird 1.5
 
  T+
 
  --
  Rafael jorge alves (Analista/desenvolvedor)
 
  www.sistemafocus.com.br
  sistema focus de gestão comercial e serviços em informatica.
  --
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
  
 
  --
   FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 
 
 
 
 

 --
 Marcos Douglas

  




-- 
---
Rafael jorge alves (Analista/desenvolvedor)

www.sistemafocus.com.br
sistema focus de gestão comercial e serviços em informatica.
---


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] clientdataset feito por mim..

2008-04-15 Por tôpico FRANCISCO Rodrigues

Voce usa o DataSetProvider? Se usa, voce setou algum evento no OnUpdateError? 
  Digo isso porque às vezes o banco retorna um erro de uma trigger ou algum 
exception, e o cds nao consegue tratar e nem dá msg nenhuma para o cliente.
  O que pode estar acontecendo é o banco estar recusando os updates, insert e 
deletes e isso nao aparece na tela, e ai fica parecendo que gravou.
  Acontece isso às vezes comigo no MSSQL, por isso uso o evento onupdateerror 
no DSP.
   
  Grato,
   
  Francisco Rodrigues.
   
  Rafael Jorge [EMAIL PROTECTED] escreveu:
  so fiz o que foi dito..
colocoque um applyupdates no afterpost do componente so isso.
coloquei tambem outras coisas que nao vem ao caso pois sao especificas das
minhas necessidades e nao afetam no ocorrido pois nao tem vinculo nenhum com
post nem apply. sao rotinas pra validae se foi passado usuario e empresa,
essas coisas. o sistema vem funcionando a um ano nesse cliente é a 3 anos em
outros estabelecimentos.
t+

Em 15/04/08, Marcos Douglas [EMAIL PROTECTED] escreveu:

 Bem, como vc alterou o comportamento padrão do ClientDataSet, fica
 difícil saber o que está errado... Somente vendo o código fonte do
 componente...

 --
 Marcos Douglas

 2008/4/15 Rafael Jorge [EMAIL PROTECTED] rafael.jorge%40gmail.com
 :

  Eu criei um componente herdado do tclientdataset, coloquei alguns
  funcionalidades nele, tipo uma propriedade autoapply que se tiver setada
  como true após um post ele já envia um applyupdates automaticamente.
 Esse
  meu componente vem funcionando perfeitamente mas a alguns dias um
 cliente
  meu tem reclamado pois ele edita os preços e demais coisas da tabela de
  produto, salva (da um post) e quando volta a tela ou vai ver nenhuma
 mudança
  que ele fez o sistema aplicou no banco, e com se estivese so local (no
 delta
  do clientdataset), o sistema ta rodando la a mais de um ano e só ta
 dando
  isso agora. Alguém sabe o que pode ta causando isso e como corrigir? O
 mesmo
  programa toda em vários outros clientes e so la esta dando essa bronca..
 o
  banco de dados é firebird 1.5
 
  T+
 
  --
  Rafael jorge alves (Analista/desenvolvedor)
 
  www.sistemafocus.com.br
  sistema focus de gestão comercial e serviços em informatica.
  --
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
  
 
  --
   FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 
 
 
 
 

 --
 Marcos Douglas

 


-- 
--
Rafael jorge alves (Analista/desenvolvedor)

www.sistemafocus.com.br
sistema focus de gestão comercial e serviços em informatica.
--

[As partes desta mensagem que não continham texto foram removidas]



   

 between -00-00 and -99-99   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] ClientDataSet e Transações

2008-04-11 Por tôpico Ricardo César Cardoso
Boa tarde, colegas!

Estou com uma dúvida aqui... Quando trabalho com TClientDataSet, preciso 
controlar explicitamente as transações ou o TClientDataSet faz isso por mim?

Atte,
Ricardo.

   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] ClientDataSet e Transações

2008-04-11 Por tôpico Bruno Lichot
O metodo applyupdates é uma transação monitorada, o parâmetro deste método é o 
numro de erros que podem ocorrer. Por isso se colocar zero, este não permitira 
erros..

 

Abs

 

BL

 

From: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Ricardo César Cardoso
Sent: sexta-feira, 11 de abril de 2008 13:59
To: delphi-br@yahoogrupos.com.br
Subject: [delphi-br] ClientDataSet e Transações

 

Boa tarde, colegas!

Estou com uma dúvida aqui... Quando trabalho com TClientDataSet, preciso 
controlar explicitamente as transações ou o TClientDataSet faz isso por mim?

Atte,
Ricardo.

-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet e Transações

2008-04-11 Por tôpico Claudio Marconi
Pelo que eu entendi de sua pergunta, sim.

O ClientDataSet faz o controle de transacoes automaticamente atraves do
metodo ApplyUpdates.(Na verdade quem faz é o SQLConnection atraves dos
Metodos StartTransaction,. Commit e Rollback).

Quero dizer, qndo vc chama este metodo ele pega as alteracoes que tem no
cache e grava no banco de dados.

Mas caso vc queria controlar transacoes como em uma transferencia bancaria
vc deverá fazer isto atraves dos
metodos mencionados acima. Com o SQLConnection, mas continua utilizando o
ApplyUpdates.

tendeu ?



Em 11/04/08, Ricardo César Cardoso [EMAIL PROTECTED] escreveu:

   Boa tarde, colegas!

 Estou com uma dúvida aqui... Quando trabalho com TClientDataSet, preciso
 controlar explicitamente as transações ou o TClientDataSet faz isso por mim?

 Atte,
 Ricardo.

 -
 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
 armazenamento!

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Cláudio Marconi
Delphi/DirectShow Developer
55 61 8406-6451


[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] ClientDataSet e Transações

2008-04-11 Por tôpico Ricardo César Cardoso
Pois é, Bruno. Tenho isso em mente, mas alguém me questionou que estou 
equivocado e o melhor é sempre ter uma transação explícita mesmo trabalhando 
com ClientDataSet, mas não sei... não me convenceu.

Agora, se puder me confirme: mesmo que eu esteja usando mestre/detalhes, não 
preciso ter uma transação controlando uma atualização não é?

Ilustro com o seguinte exemplo:

O usuário lança uma nota de entrada de estoque e clica em confirmar. 
  
 rodo o CDS de itens aumentando a posição de estoque. 
 dou applyUpdates no CDS da Nota. 
 dou AppyUpdates no CDS q alterou o estoque. 
 dou AppyUpdates no CDS dos itens. 
  
 ai no CDS dos Itens (eram 20 itens). 
 deu erro em um. mais necessáriamente o item 14. 
  
Bastaria checar o número de erros durante o ApplyUpdates para emitir uma 
mensagm, não é? E dependendo de como quiser tratar, ir aplicando CancelUpdates 
para evitar o desastre, não?

Atte,
Ricardo.

Bruno Lichot [EMAIL PROTECTED] escreveu: O metodo 
applyupdates é uma transação monitorada, o parâmetro deste método é o numro de 
erros que podem ocorrer. Por isso se colocar zero, este não permitira erros..
 
 Abs
 
 BL
 






   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] ClientDataSet e Transações

2008-04-11 Por tôpico Rubem Nascimento da Rocha

O ClientDataSet, via TDataSetProvider, já faz esse controle de forma 
transparente, mesmo se vc ClientDataSets aninhados representando uma relação 
mestre-detalhe.

Sds.




To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Fri, 11 Apr 2008 13:58:51 -0300
Subject: [delphi-br] ClientDataSet e Transações







Boa tarde, colegas!

Estou com uma dúvida aqui... Quando trabalho com TClientDataSet, preciso 
controlar explicitamente as transações ou o TClientDataSet faz isso por mim?

Atte,
Ricardo.

-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!

[As partes desta mensagem que não continham texto foram removidas]









_
Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de relacionamentos 
com até 6,000 fotos!
http://www.amigosdomessenger.com.br


Re:[delphi-br] ClientDataSet e Transa ções

2008-04-11 Por tôpico Walter Chagas (BOL)
Não, quem vai fazer isto pra você é o Datasource Provider.

[]s
 
 
 
Walter Alves Chagas Junior
Belo Horizonte - MG - Brazil
[EMAIL PROTECTED]
http://www.geocities.com/SiliconValley/Bay/1058
http://delphitocorporerm.blogspot.com/
MSN: [EMAIL PROTECTED]
SKYPE: WalterChagasJr


-- Início da mensagem original ---

  De: delphi-br@yahoogrupos.com.br
Para: delphi-br@yahoogrupos.com.br
  Cc: 
Data: Fri, 11 Apr 2008 13:58:51 -0300 (ART)
 Assunto: [delphi-br] ClientDataSet e Transações

 Boa tarde, colegas!
 
 Estou com uma dúvida aqui... Quando trabalho com TClientDataSet, preciso 
 controlar explicitamente as transações ou o TClientDataSet faz isso por mim?
 
 Atte,
 Ricardo.
 

 -
 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
 armazenamento! 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 



Re: [delphi-br] ClientDataSet e Transações

2008-04-11 Por tôpico Adriano Santos (Yahoo)
Precisa controlar. Como está usando o componente?
DBExpress?

Se for DBExpress, receita de bolo, precisa fazer o seguinte:

procedure TForm1..
var
  Trans : TTransactionDesc;
begin
  Trans.TransationID := 1;
  Trans.IsolationLevel := xilREADCOMMITTED;
  try
SqlConnection.StartTransation(Trans):
//comandos de gravação
SqlConnection.Commit(Trans):
  except
SqlConnection.RollBack(Trans):
  end;
end;

Dá uma olhada nesse link, tem uma discussão enorme sobre isso que dá pra 
aprender e entender bastante coisa.
http://forum.clubedelphi.net/viewtopic.php?t=75031postdays=0postorder=ascstart=30sid=002f1248ced44cd1c792b6f25d78c5c9



Abs


Adriano Santos
-
Editor Técnico Revista ClubeDelphi
www.delphitodelphi.blogspot.com
www.devmedia.com.br
www.devmedia.com.br/clubedelphi/pagina.asp




Ricardo César Cardoso respondeu:

 Boa tarde, colegas!

 Estou com uma dúvida aqui... Quando trabalho com TClientDataSet, 
 preciso controlar explicitamente as transações ou o TClientDataSet faz 
 isso por mim?

 Atte,
 Ricardo.

 -
 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
 armazenamento!

 [As partes desta mensagem que não continham texto foram removidas]

 
 

 No virus found in this incoming message.
 Checked by AVG. 
 Version: 7.5.519 / Virus Database: 269.22.12/1373 - Release Date: 11/4/2008 
 09:17
   


Re: [delphi-br] ClientDataSet e Transações

2008-04-11 Por tôpico Joel Alexandre
Claudio,

Só pegando uma carona no topico. Esses dias vi uma video do Guinter 
e num exemplo que mostrava na tela tinha um botão de post e outro 
ApplyUpdate. Ele alterava o dado no grid, clicava em Post e depois em 
ApplyUpdate. Fiquei boiando porque achava que o Post já fazia esse 
commit no banco.
   
[]Os Joel
 Pelo que eu entendi de sua pergunta, sim.

 O ClientDataSet faz o controle de transacoes automaticamente atraves do
 metodo ApplyUpdates.(Na verdade quem faz é o SQLConnection atraves dos
 Metodos StartTransaction,. Commit e Rollback).

 Quero dizer, qndo vc chama este metodo ele pega as alteracoes que tem no
 cache e grava no banco de dados.

 Mas caso vc queria controlar transacoes como em uma transferencia bancaria
 vc deverá fazer isto atraves dos
 metodos mencionados acima. Com o SQLConnection, mas continua utilizando o
 ApplyUpdates.

 tendeu ?



 Em 11/04/08, Ricardo César Cardoso [EMAIL PROTECTED] escreveu:
   
   Boa tarde, colegas!

 Estou com uma dúvida aqui... Quando trabalho com TClientDataSet, preciso
 controlar explicitamente as transações ou o TClientDataSet faz isso por mim?

 Atte,
 Ricardo.

 -
 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
 armazenamento!

 [As partes desta mensagem que não continham texto foram removidas]

  

 



   



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet e Transações

2008-04-11 Por tôpico Ricardo César Cardoso
Nope, Joel. Post só manda o registro para o cache do TClientDataSet. Quem acaba 
fazendo o envio pro BD é o ApplyUpdates.

Gostaria de agradecer todos os colegas ( Rubem Nascimento, Bruno Lichot, Walter 
Chagas e Adriano Santos ) por confirmarem o ponto de vista que não necessito 
explicitar o uso de transações e esclarecer qual componente é responsável por 
facilitar a vida escondendo as transações.

Valeu mesmo!

Atte,
Ricardo.

Joel Alexandre [EMAIL PROTECTED] escreveu: 
Claudio,
 
 Só pegando uma carona no topico. Esses dias vi uma video do Guinter 
 e num exemplo que mostrava na tela tinha um botão de post e outro 
 ApplyUpdate. Ele alterava o dado no grid, clicava em Post e depois em 
 ApplyUpdate. Fiquei boiando porque achava que o Post já fazia esse 
 commit no banco.

 []Os Joel






   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] ClientDataSet BMP x JPG

2008-04-07 Por tôpico Juliano Silva - Yahoo
Pessoal
 
Estou fazendo a captura de imagem dos clientes (com webcam) mas o
ClientDataSet não aceita que eu coloque no banco uma imagem no formato JPG,
apenas BMP... como estou fazendo: 
 
1. Capturo a foto da WebCam, esta é salva como BMP
2. Converto para JPG a foto pois fica muito menor então fico com 2 imagens
(Imagem.bmp e Imagem.jpg)
3. Carrego o campo com a imagem JPG mas não funciona, apenas como BMP
funciona.
 
[ FUNCIONA ]   edCLI_IMG_FOTO.Bitmap.LoadFromFile('Imagem.bmp');
[ NAO FUNCIONA ]   edCLI_IMG_FOTO.Bitmap.LoadFromFile('Imagem.jpg');
[ NAO FUNCIONA ]   edCLI_IMG_FOTO.LoadFromFile('Imagem.jpg');
 
** PORQUE NÃO FUNCIONA JPG ? 

Utilizo o Firebird 1.5 o campo CLI_IMG_FOTO é do tipo BLOB 0
 
att.
 
Juliano Silva


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet BMP x JPG

2008-04-07 Por tôpico Ricardo César Cardoso
Bom dia Juliano!

Dá uma olhadinha nessas duas dicas, pode ser que elas te ajudem um pouco.

[ http://www.swissdelphicenter.ch/torry/showcode.php?id=2012 ]
[ http://www.swissdelphicenter.ch/torry/showcode.php?id=1883 ]

Atte,
Ricardo.

Juliano Silva - Yahoo [EMAIL PROTECTED] escreveu: 
Pessoal
  
 Estou fazendo a captura de imagem dos clientes (com webcam) mas o
 ClientDataSet não aceita que eu coloque no banco uma imagem no formato JPG,
 apenas BMP... como estou fazendo: 
  
 1. Capturo a foto da WebCam, esta é salva como BMP
 2. Converto para JPG a foto pois fica muito menor então fico com 2 imagens
 (Imagem.bmp e Imagem.jpg)
 3. Carrego o campo com a imagem JPG mas não funciona, apenas como BMP
 funciona.
  
 [ FUNCIONA ]   edCLI_IMG_FOTO.Bitmap.LoadFromFile('Imagem.bmp');
 [ NAO FUNCIONA ]   edCLI_IMG_FOTO.Bitmap.LoadFromFile('Imagem.jpg');
 [ NAO FUNCIONA ]   edCLI_IMG_FOTO.LoadFromFile('Imagem.jpg');
  
 ** PORQUE NÃO FUNCIONA JPG ? 
 
 Utilizo o Firebird 1.5 o campo CLI_IMG_FOTO é do tipo BLOB 0
  
 att.
  
 Juliano Silva
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 



   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

[As partes desta mensagem que não continham texto foram removidas]



Res: [delphi-br] ClientDataSet BMP x JPG

2008-04-07 Por tôpico Andre Luis Silveria
Para trabalhar com Jpg no Delphi, vc deve declarar a unit JPEG no uses da unit.
Procure sobre essa unit no help do Delphi que vc vai achar muito informaçao 
útil.




  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]



  1   2   3   >