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 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
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
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 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]
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]
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
Re: [delphi-br] [CLIENTDATASET 3 TABELAS]
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
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 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]
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
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 * 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 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 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: [delphi-br] [CLIENTDATASET 3 TABELAS]
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]
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]
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]
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 sqldDetail pra clUseClient 8) Repita o passo 8 da geração da query master (referentes ao parametro). 9) Aponte o Datasource de qDetail para o dsMasterDetail. 11) Repita o passo 15 do cdsMaster, só que agora, ao você mandar adicionar os TFields, irá aparecer um novo campo. Este campo é um DATASETFIELD é o elo de comunicação entre o seu master e o detail e deverá ter o nome qDetail. 12) No cdsDetail, aponte o seu Datasetfield para qDetail. 15) Repita o passo 16 do cdsMaster para o cdsDetail. Mesma coisa. Está pronta a sua tão sonhada conexão MD. Você pode criar ainda Details que sejam detail deste ultimo Detail que criamos agora. Para fazer isto, basta fazer o seguinte: 1) Coloque no seu DataModule, um componente TDataSource. Vamos chama-lo de dsDetailDetail. 2) Aponte o Dataset dele para o dsDetail. O resto dos procedimentos, você pode seguir os passos da criação do CDS e do Datasource. A unica diferença é que pra este novo caso (Detail de um Detail mestre), não é
Re: [delphi-br] ClientDataSet - Out Of Memory
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]
Re: [delphi-br] [ ClientDataSet atualizar base offline ]
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 ]
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 ]
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]
Re: [delphi-br] [ClientDataSet atualizar base offline ]
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 ]
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
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]
Re: [delphi-br] ClientDataSet - Out Of Memory
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
*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
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]
Re: [delphi-br] ClientDataSet - Out Of Memory
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
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
Re: [delphi-br] Clientdataset grava registro antigo em XML
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]
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 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]
Re: [delphi-br] ClientDataSet
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
Re: [delphi-br] ClientDataSet com Criptografia
- 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
Re: [delphi-br] ClientDataSet - Lookup Lento
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
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
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
é, 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
Re: [delphi-br] ClientDataSet - Lookup Lento
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
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]
Re: [delphi-br] ClientDataSet
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
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
Re: [delphi-br] ClientDataSet
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: [delphi-br] clientdataset + firebird
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
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
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]
Re: [delphi-br] clientdataset + firebird
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
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
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 -
RE: [delphi-br] ClientDataSet
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
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]
RE: [delphi-br] ClientDataSet
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: [delphi-br] clientdataset feito por mim..
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..
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..
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]
RE: [delphi-br] ClientDataSet e Transações
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
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
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
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
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
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
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
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]
Re: [delphi-br] ClientDataSet BMP x JPG
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]
Re: [delphi-br] ClientDataSet BMP x JPG
tente assim: edCLI_IMG_FOTO. picture.LoadFromF ile('Imagem. bmp'); [ NAO FUNCIONA ] 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]
Re: [delphi-br] ClientDataSet BMP x JPG
Se não me engano, basta colocar na cláusula uses a unit Jpeg que ele passa a aceitar o JPG. PS: Tudo que respondo nessa lista demora uma eternidade para chegar no grupo... pra vocês terem uma idéia: agora são 08h41 da manhã do dia 7/4...vamos ver quando essa resposta chega na lista... Desse ser um problema crônico do yahoo groups...poderíamos discutir a idéia de migrar o grupo para o GoogleGroups hein...está muito melhor e mais moderno que o yahoo...está aberta a discussão. []s Alexandre NIcolas - Original Message - From: Juliano Silva - Yahoo To: delphi-br@yahoogrupos.com.br Sent: Monday, April 07, 2008 8:33 AM Subject: [delphi-br] ClientDataSet BMP x JPG 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] [As partes desta mensagem que não continham texto foram removidas]
RE: [delphi-br] ClientDataset
No evento BeforeUpdateRecord do TDataSetProvider do ClientDataSet vc pode fazer isso. Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Wed, 26 Mar 2008 15:32:30 -0300 Subject: [delphi-br] ClientDataset Galera Estou usando TSQLQuery, DataSetProvider e ClientDataset. Na consulta no TSQLQUERY, eu tenho um sql que envolve 3 tabelas, sendo que apenas uma destas eu realmente realizo as operações. É possível que eu atualize os dados dessa tabela, e de outro campo de outro tabela?? Eu setei as providersflags do campo como update true, mas não consegui resolver. Alguém tem alguma idéia?? -- 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 -- - 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] _ Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! http://www.amigosdomessenger.com.br/
RE: [delphi-br] ClientDataset
mas n existe a possiblidade de atualizar um campo de outra tela tipo eu tenho uma tabela de lançamentos ligada com uma conta a cada novo lançamento eu tenho que atualizar o saldo da conta. Não posso fazer isso?? Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: No evento BeforeUpdateRecord do TDataSetProvider do ClientDataSet vc pode fazer isso. Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Wed, 26 Mar 2008 15:32:30 -0300 Subject: [delphi-br] ClientDataset Galera Estou usando TSQLQuery, DataSetProvider e ClientDataset. Na consulta no TSQLQUERY, eu tenho um sql que envolve 3 tabelas, sendo que apenas uma destas eu realmente realizo as operações. É possível que eu atualize os dados dessa tabela, e de outro campo de outro tabela?? Eu setei as providersflags do campo como update true, mas não consegui resolver. Alguém tem alguma idéia?? -- 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 -- - 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] __ Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! http://www.amigosdomessenger.com.br/ 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 - 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
Reafirmo que neste evento vc pode fazer isso, porém, neste evento vc faz isso em relação ao banco de dados, e não com relação ao dados visualizados no dataset localmente. Com base nisso, se vc quiser ver o outro dado da outra tabela em um outro formulário, terá que ser feito um esquema de refresh no dataset deste outro formulário para ver a atualização efetivada. Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Wed, 26 Mar 2008 15:44:17 -0300 Subject: RE: [delphi-br] ClientDataset mas n existe a possiblidade de atualizar um campo de outra tela tipo eu tenho uma tabela de lançamentos ligada com uma conta a cada novo lançamento eu tenho que atualizar o saldo da conta. Não posso fazer isso?? Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: No evento BeforeUpdateRecord do TDataSetProvider do ClientDataSet vc pode fazer isso. Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Wed, 26 Mar 2008 15:32:30 -0300 Subject: [delphi-br] ClientDataset Galera Estou usando TSQLQuery, DataSetProvider e ClientDataset. Na consulta no TSQLQUERY, eu tenho um sql que envolve 3 tabelas, sendo que apenas uma destas eu realmente realizo as operações. É possível que eu atualize os dados dessa tabela, e de outro campo de outro tabela?? Eu setei as providersflags do campo como update true, mas não consegui resolver. Alguém tem alguma idéia?? -- 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 -- - 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] __ Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! http://www.amigosdomessenger.com.br/ -- 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 -- - 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
Só debugando no Win98 pra saber qual é! Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Fri, 29 Feb 2008 21:53:02 + Subject: [delphi-br] ClientDataSet no Win98 um programa com CDS deu o seguinte erro: Variant or safe array is locked nos outros S.O. funcionam normalmente. o que poderá ser ?? Stainle _ 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 x WINDOWS VISTA
Qual diretorio vc está usando pra isso ? O Vista tem esquemas de permissão mais elaborados. Use a variável de ambiente que informa qual é o diretorio temporário oficial do windows (tipo c:\windows\temp), e use esse diretorio. Vinicius Barreira Check-In Informática Software Para Hotéis / Pousadas / Moteis São Bernardo do Campo - SP http://www.check-in.com.br Fone (11) 4330-3148 msn / e-mail: [EMAIL PROTECTED] skype: vinibarr Marcio William escreveu: Oi pessoal, Eu trabalho com clientdataset para criar um arquivo temporario, a seguir eu salva este arquivo para depois ser usado. Tudo ocorre perfeitamente com 95, 98, 2000, NT, XP porem com VISTA ele me da um erro de I/O, a versao eh HOME BASIC, alguem ja passou por isto ? como contornar ?
Re: [delphi-br] CLIENTDATASET x WINDOWS VISTA
O windows vista tem certos problemas pra gravar no program files... tente mudar o local de gravação do arquivo, ou mudar as permissões dos usuários nesta pasta. []s Em 08/02/08, Marcio William [EMAIL PROTECTED] escreveu: Obrigado pela dica Vinicius, O diretorio que estou usando eh c:\arquivos de programas\sistema\temp. - Original Message - From: Vinicius Barreira [EMAIL PROTECTED] vinibarr%40gmail.com To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Sent: Thursday, February 07, 2008 10:35 PM Subject: Re: [delphi-br] CLIENTDATASET x WINDOWS VISTA Qual diretorio vc está usando pra isso ? O Vista tem esquemas de permissão mais elaborados. Use a variável de ambiente que informa qual é o diretorio temporário oficial do windows (tipo c:\windows\temp), e use esse diretorio. Vinicius Barreira Check-In Informática Software Para Hotéis / Pousadas / Moteis São Bernardo do Campo - SP http://www.check-in.com.br Fone (11) 4330-3148 msn / e-mail: [EMAIL PROTECTED] vinicius%40check-in.com.br skype: vinibarr Marcio William escreveu: Oi pessoal, Eu trabalho com clientdataset para criar um arquivo temporario, a seguir eu salva este arquivo para depois ser usado. Tudo ocorre perfeitamente com 95, 98, 2000, NT, XP porem com VISTA ele me da um erro de I/O, a versao eh HOME BASIC, alguem ja passou por isto ? como contornar ? -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos -- _ T.·.F.·.A.·. Fellipe Henrique [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] CLIENTDATASET x WINDOWS VISTA
Obrigado pela dica Vinicius, O diretorio que estou usando eh c:\arquivos de programas\sistema\temp. - Original Message - From: Vinicius Barreira [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Thursday, February 07, 2008 10:35 PM Subject: Re: [delphi-br] CLIENTDATASET x WINDOWS VISTA Qual diretorio vc está usando pra isso ? O Vista tem esquemas de permissão mais elaborados. Use a variável de ambiente que informa qual é o diretorio temporário oficial do windows (tipo c:\windows\temp), e use esse diretorio. Vinicius Barreira Check-In Informática Software Para Hotéis / Pousadas / Moteis São Bernardo do Campo - SP http://www.check-in.com.br Fone (11) 4330-3148 msn / e-mail: [EMAIL PROTECTED] skype: vinibarr Marcio William escreveu: Oi pessoal, Eu trabalho com clientdataset para criar um arquivo temporario, a seguir eu salva este arquivo para depois ser usado. Tudo ocorre perfeitamente com 95, 98, 2000, NT, XP porem com VISTA ele me da um erro de I/O, a versao eh HOME BASIC, alguem ja passou por isto ? como contornar ? -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos
Re: [delphi-br] ClientDataSet VALOR DEFAULT
se vc nao cria os fields em tempo de execução, com certeza foi lá no ClientDataSet e definiu os fields previamente. então, observando o codigo postado anteriormente, seu field deve estar com o seguinte nome: CDSCODIGO. Dai vc poderia acessar a propriedade dele que citei anteriormente, ficando o código desta forma: CDSCODIGO.DisplayFormat := 'Sua máscara' Abs Daniel A. Bastos Em 12/12/07, Juliano Silva - Yahoo [EMAIL PROTECTED] escreveu: Sim É possível criar uma tabela de memória com o ClientDataSet, tabelas de memória em suma devem ser usadas em auxilio a alguma funcionalidade... Juliano Silva _ 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 Daniel Bastos Enviada em: terça-feira, 11 de dezembro de 2007 18:21 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] ClientDataSet VALOR DEFAULT mas quando vc diz que está criando em memória, vc quer dizer que ele não tem ligação com um provider ou que está criando ele por código? Abs Daniel A. Bastos Em 11/12/07, Juliano Silva - Yahoo [EMAIL PROTECTED] mailto:smjjuliano%40yahoo.com.br com.br escreveu: Não, estou criando um DataSet de memória... _ De: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br delphi-br%40yahoogrupos.com.br [mailto: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br delphi-br%40yahoogrupos.com.br] Em nome de Frota C. Júnior Enviada em: terça-feira, 11 de dezembro de 2007 10:41 Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] ClientDataSet VALOR DEFAULT Imagino que vc está acessando um banco de dados, e se for firebird, eu resolvi este problema usando no select select coalesce(campo01, 0) from tabela, o coalesce envia para o dataset o valor 0 (zero) quando o mesmo for nulo, assim nunca será nulo, mesmo em se tratando dos campo agregados, mas isso resolve o problema de uma consulta que retornou registros e que tenha uma ou mis colunas nulas, para o caso do select não retornar nulo isso não funcionará. Outra solução é você criar um campo calculado no ClientDataSet e atribui-lo o valor do campo agregado mediante um teste para verificar se o mesmo é nulo, se for basta incrementar zero. Espero ter ajudado. Cordialmente Frota C. Júnior www.apoio.eti.br -- From: Juliano Silva - Yahoo [EMAIL PROTECTED] mailto:smjjuliano%40yahoo.com.br com.br Sent: Tuesday, December 11, 2007 8:56 AM To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br Subject: [delphi-br] ClientDataSet VALOR DEFAULT Pessoal Tenho um campo AGGREGATE no ClientDataSet que faz a soma de uma coluna de valores, tenho um TDBText ligado e este campo agregate, quero deixar ele com o valor 0,00 quando não houver nenhum registro, já mexi um monte no ClientDataSet no campo Agregate para fazer isso, mas não estou conseguindo... Já usei a propriedade DEFAULT mas não estou conseguindo... Juliano Silva [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] [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 VALOR DEFAULT
Imagino que vc está acessando um banco de dados, e se for firebird, eu resolvi este problema usando no select select coalesce(campo01, 0) from tabela, o coalesce envia para o dataset o valor 0 (zero) quando o mesmo for nulo, assim nunca será nulo, mesmo em se tratando dos campo agregados, mas isso resolve o problema de uma consulta que retornou registros e que tenha uma ou mis colunas nulas, para o caso do select não retornar nulo isso não funcionará. Outra solução é você criar um campo calculado no ClientDataSet e atribui-lo o valor do campo agregado mediante um teste para verificar se o mesmo é nulo, se for basta incrementar zero. Espero ter ajudado. Cordialmente Frota C. Júnior www.apoio.eti.br -- From: Juliano Silva - Yahoo [EMAIL PROTECTED] Sent: Tuesday, December 11, 2007 8:56 AM To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] ClientDataSet VALOR DEFAULT Pessoal Tenho um campo AGGREGATE no ClientDataSet que faz a soma de uma coluna de valores, tenho um TDBText ligado e este campo agregate, quero deixar ele com o valor 0,00 quando não houver nenhum registro, já mexi um monte no ClientDataSet no campo Agregate para fazer isso, mas não estou conseguindo... Já usei a propriedade DEFAULT mas não estou conseguindo... Juliano Silva [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ClientDataSet VALOR DEFAULT
Bom dia Juliano ... Tente assim: DBText2.Caption := '0,00' ; // Campo Aggregate ligado ao DBText2.Caption Espero ter ajudado Luciano Angelini Prefeitura de Lupionópolis-Pr Juliano Silva - Yahoo escreveu: Pessoal Tenho um campo AGGREGATE no ClientDataSet que faz a soma de uma coluna de valores, tenho um TDBText ligado e este campo agregate, quero deixar ele com o valor 0,00 quando não houver nenhum registro, já mexi um monte no ClientDataSet no campo Agregate para fazer isso, mas não estou conseguindo... Já usei a propriedade DEFAULT mas não estou conseguindo... Juliano Silva [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ClientDataSet VALOR DEFAULT
se não me engano, vc pode incluir mascaras de formatação para visualização no próprio field, na propriedade DisplayFormat. Abs. Daniel A. Bastos Em 11/12/07, Frota C. Júnior [EMAIL PROTECTED] escreveu: Imagino que vc está acessando um banco de dados, e se for firebird, eu resolvi este problema usando no select select coalesce(campo01, 0) from tabela, o coalesce envia para o dataset o valor 0 (zero) quando o mesmo for nulo, assim nunca será nulo, mesmo em se tratando dos campo agregados, mas isso resolve o problema de uma consulta que retornou registros e que tenha uma ou mis colunas nulas, para o caso do select não retornar nulo isso não funcionará. Outra solução é você criar um campo calculado no ClientDataSet e atribui-lo o valor do campo agregado mediante um teste para verificar se o mesmo é nulo, se for basta incrementar zero. Espero ter ajudado. Cordialmente Frota C. Júnior www.apoio.eti.br -- From: Juliano Silva - Yahoo [EMAIL PROTECTED]smjjuliano%40yahoo.com.br Sent: Tuesday, December 11, 2007 8:56 AM To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Subject: [delphi-br] ClientDataSet VALOR DEFAULT Pessoal Tenho um campo AGGREGATE no ClientDataSet que faz a soma de uma coluna de valores, tenho um TDBText ligado e este campo agregate, quero deixar ele com o valor 0,00 quando não houver nenhum registro, já mexi um monte no ClientDataSet no campo Agregate para fazer isso, mas não estou conseguindo... Já usei a propriedade DEFAULT mas não estou conseguindo... Juliano Silva [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 VALOR DEFAULT
mas quando vc diz que está criando em memória, vc quer dizer que ele não tem ligação com um provider ou que está criando ele por código? Abs Daniel A. Bastos Em 11/12/07, Juliano Silva - Yahoo [EMAIL PROTECTED] escreveu: Não, estou criando um DataSet de memória... _ 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 Frota C. Júnior Enviada em: terça-feira, 11 de dezembro de 2007 10:41 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] ClientDataSet VALOR DEFAULT Imagino que vc está acessando um banco de dados, e se for firebird, eu resolvi este problema usando no select select coalesce(campo01, 0) from tabela, o coalesce envia para o dataset o valor 0 (zero) quando o mesmo for nulo, assim nunca será nulo, mesmo em se tratando dos campo agregados, mas isso resolve o problema de uma consulta que retornou registros e que tenha uma ou mis colunas nulas, para o caso do select não retornar nulo isso não funcionará. Outra solução é você criar um campo calculado no ClientDataSet e atribui-lo o valor do campo agregado mediante um teste para verificar se o mesmo é nulo, se for basta incrementar zero. Espero ter ajudado. Cordialmente Frota C. Júnior www.apoio.eti.br -- From: Juliano Silva - Yahoo [EMAIL PROTECTED] mailto:smjjuliano%40yahoo.com.br com.br Sent: Tuesday, December 11, 2007 8:56 AM To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br Subject: [delphi-br] ClientDataSet VALOR DEFAULT Pessoal Tenho um campo AGGREGATE no ClientDataSet que faz a soma de uma coluna de valores, tenho um TDBText ligado e este campo agregate, quero deixar ele com o valor 0,00 quando não houver nenhum registro, já mexi um monte no ClientDataSet no campo Agregate para fazer isso, mas não estou conseguindo... Já usei a propriedade DEFAULT mas não estou conseguindo... Juliano Silva [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-Campos não aceitam val or nulo
O erro é : FIELD VALUE REQUIRED. Os campos estão como not null no BD tai not null = nao nulo ou seja o campo nao pode ser nulo pra resolver seu problema e so mudar o campo pra null RESOLVIDOOO! - Original Message - From: Yahoo To: delphi-br@yahoogrupos.com.br Sent: Wednesday, November 07, 2007 9:24 PM Subject: Re: [delphi-br] ClientDataset-Campos não aceitam valor nulo O erro é : FIELD VALUE REQUIRED. Os campos estão como not null no BD. O que acontece é o seguinte: Eu faço uma consulta no BD e jogo os dados em um clientdataset. Serão inseridos alguns dados no ClientDataset, mas esses dados não serão gravados de volta para o BD, mas somente no ClientDataset.(Será dado apenas o Post e não ApplyUpdates) Através desse ClientDataset será impresso um relatório. Quanto ao porquê de gravar os campos com valor nulo não dá pra explicar através dessa lista de discussão. Eu teria que mostrar o sistema e explicar isso pessoalmente. [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-Campos não aceitam val or nulo
Minuto, Eu não posso mudar os campos para not null no banco, mas eu preciso que eles aceitem not null no ClientDataset. Eu não vou gravar os dados no Banco, mas somente no ClientDataset, entendeu? [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ClientDataset-Campos não aceitam val or nulo
Vitor, O problema é este. Eu não dou o ApplyUpdates, dou somente o Post, mas acontece o erro mesmo assim. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ClientDataset-Campos não aceitam val or nulo
ue amigo so se la no banco ta como notnull ... que erro da ae??? - Original Message - From: Yahoo To: delphi-br@yahoogrupos.com.br Sent: Wednesday, November 07, 2007 4:03 PM Subject: [delphi-br] ClientDataset-Campos não aceitam valor nulo Pessoal, Preciso que os campos de um ClientDataset aceite valor nulo depois que o ClientDataset seja aberto, mesmo que os campos não sejam nulos no BD. Tentei mudar a propriedade Required para False, coloquei ProviderFlags=[], mas não aceitou. Tem outra maneira de resolver isso? [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-Campos não aceitam val or nulo
O erro é : FIELD VALUE REQUIRED. Os campos estão como not null no BD. O que acontece é o seguinte: Eu faço uma consulta no BD e jogo os dados em um clientdataset. Serão inseridos alguns dados no ClientDataset, mas esses dados não serão gravados de volta para o BD, mas somente no ClientDataset.(Será dado apenas o Post e não ApplyUpdates) Através desse ClientDataset será impresso um relatório. Quanto ao porquê de gravar os campos com valor nulo não dá pra explicar através dessa lista de discussão. Eu teria que mostrar o sistema e explicar isso pessoalmente. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ClientDataSet
Veja se a propriedade packet records está com -1 - Original Message - From: Red Mosquito [EMAIL PROTECTED] To: [EMAIL PROTECTED]; delphi-br@yahoogrupos.com.br Sent: Tuesday, October 30, 2007 12:19 PM Subject: [delphi-br] ClientDataSet Fácil, só pra quem entende: -Coloquei um CDS no meu form -Coloquei Active=True + CommandText 'select * from clientes' -na programação apenas dou um Open no CDS e em seguido verifico o RecordCount dele POR QUE ESTÁ RETORNANDO SEMPRE ZERO, SE TENHO CLIENETES CADASTRADOS ? Detalhes: -Este CDS é apenas temporário. Não irei gravar os dados em nenhuma tabela. -No CDS não é preciso ConnectionSring ? Delphi7 + SQLServer + ADO Desde já muitíssimo obrigado pela atenção com este iniciante. Atenciosamente, Junior [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos
Re: [delphi-br] ClientDataSet
vc está utilizando ele junto c/ o SQLQuery+DataSetProvider? - Original Message - From: Red Mosquito To: [EMAIL PROTECTED] ; delphi-br@yahoogrupos.com.br Sent: Tuesday, October 30, 2007 12:19 PM Subject: [delphi-br] ClientDataSet Fácil, só pra quem entende: -Coloquei um CDS no meu form -Coloquei Active=True + CommandText 'select * from clientes' -na programação apenas dou um Open no CDS e em seguido verifico o RecordCount dele POR QUE ESTÁ RETORNANDO SEMPRE ZERO, SE TENHO CLIENETES CADASTRADOS ? Detalhes: -Este CDS é apenas temporário. Não irei gravar os dados em nenhuma tabela. -No CDS não é preciso ConnectionSring ? Delphi7 + SQLServer + ADO Desde já muitíssimo obrigado pela atenção com este iniciante. Atenciosamente, Junior [As partes desta mensagem que não continham texto foram removidas] -- E-mail classificado pelo Identificador de Spam Inteligente. Para alterar a categoria classificada, visite o Terra Mail -- Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: McAfee VirusScan / Atualizado em 29/10/2007 / Versão: 5.1.00/5151 Proteja o seu e-mail Terra: http://mail.terra.com.br/ [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ClientDataSet
Na propriedade sql do adoquery. Vc liga o cds no datasetprovider e este ao query. - Original Message - From: Red Mosquito To: delphi-br@yahoogrupos.com.br Sent: Tuesday, October 30, 2007 1:17 PM Subject: RES: [delphi-br] ClientDataSet Não, estou apenas com o DataSetProvider. Dúvida: Se tem que colocar o ADOQuery junto, onde colocarei meu 'select * from clientes' ? Na propriedade propriedade SQL do ADOQuery ou no CommandTexto do CDS ? Novamente muito obrigado pela ajuda Junior _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Valdir Sola Enviada em: terça-feira, 30 de outubro de 2007 12:43 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] ClientDataSet vc está utilizando ele junto c/ o SQLQuery+DataSetProvider? - Original Message - From: Red Mosquito To: lista-delphi@ mailto:lista-delphi%40yahoogrupos.com.br yahoogrupos.com.br ; [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br Sent: Tuesday, October 30, 2007 12:19 PM Subject: [delphi-br] ClientDataSet Fácil, só pra quem entende: -Coloquei um CDS no meu form -Coloquei Active=True + CommandText 'select * from clientes' -na programação apenas dou um Open no CDS e em seguido verifico o RecordCount dele POR QUE ESTÁ RETORNANDO SEMPRE ZERO, SE TENHO CLIENETES CADASTRADOS ? Detalhes: -Este CDS é apenas temporário. Não irei gravar os dados em nenhuma tabela. -No CDS não é preciso ConnectionSring ? Delphi7 + SQLServer + ADO Desde já muitíssimo obrigado pela atenção com este iniciante. Atenciosamente, Junior [As partes desta mensagem que não continham texto foram removidas] -- E-mail classificado pelo Identificador de Spam Inteligente. Para alterar a categoria classificada, visite o Terra Mail -- Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: McAfee VirusScan / Atualizado em 29/10/2007 / Versão: 5.1.00/5151 Proteja o seu e-mail Terra: http://mail. http://mail.terra.com.br/ terra.com.br/ [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- E-mail classificado pelo Identificador de Spam Inteligente. Para alterar a categoria classificada, visite o Terra Mail -- Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: McAfee VirusScan / Atualizado em 29/10/2007 / Versão: 5.1.00/5151 Proteja o seu e-mail Terra: http://mail.terra.com.br/ [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ClientDataSet
Boa Tarde Red Mosquito Vc tem que liga o DataSource com o ClientDataSet o ClientDataSet com DataSetProvider ... e finalmente o DataSetProvider no ADOQuery . e seu Select com coloca no ADOQuery e não no ClientDataSet ... Espero ter ajudado Luciano Angelini Prefeitura de Lupiponópolis-Pr Red Mosquito escreveu: Fácil, só pra quem entende: -Coloquei um CDS no meu form -Coloquei Active=True + CommandText ‘select * from clientes’ -na programação apenas dou um Open no CDS e em seguido verifico o RecordCount dele POR QUE ESTÁ RETORNANDO SEMPRE ZERO, SE TENHO CLIENETES CADASTRADOS ? Detalhes: -Este CDS é apenas temporário. Não irei gravar os dados em nenhuma tabela. -No CDS não é preciso ConnectionSring ? Delphi7 + SQLServer + ADO Desde já muitíssimo obrigado pela atenção com este iniciante. Atenciosamente, Junior [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: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] ClientDataSet estourando memória
Uso o firebird, e uso STORED PROCEDURE + VIEWS , nem sei se SQLServer tem esses recursos bem provável que tenha, procure algo nesse sentido. Em 24/10/07, Red Mosquito [EMAIL PROTECTED] escreveu: Delphi 7 com SQLServer usando ADO Tenho 5 tabelas. NF_COMPRA e ITENS_NF_COMPRA, NF_VENDA e ITENS_NF_VENDA e MOVIMENTO_ESTOQUE Objetivo: -Ler nf_compra e seus respectivos itens e gerar MOVIMENTO_ESTOQUE (entrada) -Ler nf_venda e seus respectivos itens e gerar MOVIMENTO_ESTOQUE (saida) -Atualizar o saldo diário do produto cf a inserção de registros em Mov.Est . Cada tabela tem um ClientDataSet, já que são precisos vários campos das tabelas para serem gravados em MOVIMENTO_ESTOQUE. O problema é que cf vou lendo mais registros a memória do windows vai indo pro espaço. Exemplo: -Dou um select em NF_COMPRA (ex: nf 1) -em seguida dou um select somente nos produtos desta NF_COMPRA 1 -para cada registro em ITENS_NF_COMPRA eu gero um registro em MOVIMENTO_ESTOQUE -dou um close nos CDS's NF_COMPRA e ITENS_NF_COMPRA -dou um createDS nesses 2 CDS's -dou um open nesses 2 CDS'S (o mesmo procedimento faço com Vendas) Colocando close+createDS+open a memória aguenta mais tempo. Se não colocar dá memória insuficiente rapidinho Estou procedendo corretamente ? Há alguma forma de liberar o CDS da memória ? Sei que deve haver formas mais fáceis, porém este programa eu já peguei pronto. Obrigado pela atenção Junior [As partes desta mensagem que não continham texto foram removidas] -- Leonardo Quinino [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: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] ClientDataSet estourando memória
bem eu uso sqlserver naqueles selects cabeludos de 3 ou mais tabelas graudas eu uso view e funciona q uma beleza. como tenho um bom servidor tento amenizar bem as querys com views e SPs e trazer o minimo pro cliente. - Original Message - From: Leonardo Quinino [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Wednesday, October 24, 2007 8:25 AM Subject: Re: [delphi-br] ClientDataSet estourando memória Uso o firebird, e uso STORED PROCEDURE + VIEWS , nem sei se SQLServer tem esses recursos bem provável que tenha, procure algo nesse sentido. Em 24/10/07, Red Mosquito [EMAIL PROTECTED] escreveu: Delphi 7 com SQLServer - usando ADO Tenho 5 tabelas. NF_COMPRA e ITENS_NF_COMPRA, NF_VENDA e ITENS_NF_VENDA e MOVIMENTO_ESTOQUE Objetivo: -Ler nf_compra e seus respectivos itens e gerar MOVIMENTO_ESTOQUE (entrada) -Ler nf_venda e seus respectivos itens e gerar MOVIMENTO_ESTOQUE (saida) -Atualizar o saldo diário do produto cf a inserção de registros em Mov.Est . Cada tabela tem um ClientDataSet, já que são precisos vários campos das tabelas para serem gravados em MOVIMENTO_ESTOQUE. O problema é que cf vou lendo mais registros a memória do windows vai indo pro espaço. Exemplo: -Dou um select em NF_COMPRA (ex: nf 1) -em seguida dou um select somente nos produtos desta NF_COMPRA 1 -para cada registro em ITENS_NF_COMPRA eu gero um registro em MOVIMENTO_ESTOQUE -dou um close nos CDS's NF_COMPRA e ITENS_NF_COMPRA -dou um createDS nesses 2 CDS's -dou um open nesses 2 CDS'S (o mesmo procedimento faço com Vendas) Colocando close+createDS+open a memória aguenta mais tempo. Se não colocar dá memória insuficiente rapidinho Estou procedendo corretamente ? Há alguma forma de liberar o CDS da memória ? Sei que deve haver formas mais fáceis, porém este programa eu já peguei pronto. Obrigado pela atenção Junior [As partes desta mensagem que não continham texto foram removidas] -- Leonardo Quinino [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos
Re: [delphi-br] ClientDataset -- DatasetProvider --SqlDataset
Bom dia Luciano. Vc usa todas as tabelas de uma vez só?? Pq vc pode usar sql dinamico e usar somente 1 conjunto de componente. - Original Message - From: Luciano Topolniak To: delphi-br@yahoogrupos.com.br Sent: Wednesday, September 05, 2007 10:38 AM Subject: [delphi-br] ClientDataset -- DatasetProvider --SqlDataset Olá pessoal, bom dia. Há algum tempo eu uso o trio ClientDataset -- DatasetProvider --SqlDataset nas minhas aplicações. Todavia, para cada tabela no banco eu coloco três novos componentes no datamodule. Gostaria de saber se alguém na lista os usa, mas não colocando três componentes para cada tabela na base e sim acrescentando apenas um clientdataset e ligando ao provider que já está ligado ao sqldataset. []'s Topolniak. [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 -- DatasetProvider --SqlDataset
Caro Luciano, Também estava com o mesmo problema. Isso é resovido com o componente SimpleDataSet que emgloba o trio ClientDataset -- DatasetProvider --SqlDataset. Veja o artigo do Guinther Pauli sobre o assunto: http://www.devmedia.com.br/articles/viewcomp.asp?comp=580 abraços, Edmilson Pontes Em 05/09/07, Luciano Topolniak [EMAIL PROTECTED] escreveu: Olá pessoal, bom dia. Há algum tempo eu uso o trio ClientDataset -- DatasetProvider --SqlDataset nas minhas aplicações. Todavia, para cada tabela no banco eu coloco três novos componentes no datamodule. Gostaria de saber se alguém na lista os usa, mas não colocando três componentes para cada tabela na base e sim acrescentando apenas um clientdataset e ligando ao provider que já está ligado ao sqldataset. []'s Topolniak. [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 -- DatasetProvider --SqlDataset
Caro Bruno e demais colegas, Como fazer? Usar o trio para cada tabela? Não usar ResolveToDataSet? Setar ProviderFlags no cds no dst? Como usar applyupdates? Desculpe tantas perguntas, mas é pq não estou conseguiindo resolver. abraços, Edmilson Pontes Em 05/09/07, Bruno Lichot [EMAIL PROTECTED] escreveu: Os ganhos com uso de ClientDataSet são muito superiores, não recomendo o uso de SimpleDataSet, ale do q pode ser um entrave na evolução da sua aplicação, Sem falar de recursops de atualização q vc posui e outros de performance, controle, tratamento de excessao e reconciliação. Na minha opniao, usar SimpleDataSet é um erro. Sem falar q DBX agora e um framework e esta totalmente integrado no ambiente .NET . Abs BL 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 Edmilson Pontes Enviada em: quarta-feira, 5 de setembro de 2007 12:26 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] ClientDataset -- DatasetProvider --SqlDataset Caro Luciano, Também estava com o mesmo problema. Isso é resovido com o componente SimpleDataSet que emgloba o trio ClientDataset -- DatasetProvider --SqlDataset. Veja o artigo do Guinther Pauli sobre o assunto: http://www.devmedia.com.br/articles/viewcomp.asp?comp=580 abraços, Edmilson Pontes Em 05/09/07, Luciano Topolniak [EMAIL PROTECTED]topolniak%40bol.com.br mailto:topolniak% topolniak%2540bol.com.br escreveu: Olá pessoal, bom dia. Há algum tempo eu uso o trio ClientDataset -- DatasetProvider --SqlDataset nas minhas aplicações. Todavia, para cada tabela no banco eu coloco três novos componentes no datamodule. Gostaria de saber se alguém na lista os usa, mas não colocando três componentes para cada tabela na base e sim acrescentando apenas um clientdataset e ligando ao provider que já está ligado ao sqldataset. []'s Topolniak. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ClientDataSet: ApplyUpdate() com erro
Olá Filipe, sem saber o erro fica meio complicado... :-) mas posso te adiantar que se voce marcou o upWhereKeyOnly no DSP, lá no ClientDataSet, você marca o campo indice e seta a propriredade InKey, InWhere, InUpdate. e todos os outros campos, voce só deixa marcado o InUpdate... isso no UpdateFlags... []s Em 04/12/06, Filipe Belchior [EMAIL PROTECTED] escreveu: olá galera, seguinte.. estou começando com clientdataset (CDS).. estou tendo problema para editar e excluir registros, sim, apenas para editar e excluir, pois insere normalmente.. uso FB 1.5, dialect 3, UIB, CDS, DSP, SQLQuery (com um simples select * from tabela).. configurei o UpdateMode e os ProviderFlags, upWhereKeyOnly, tudo ok.. não sei o q ocorre.. e pra piorar, ou talvez não (posso estar enganado), encontrei isso http://qc.borland.com/wc/qcmain.aspx?d=5550 ..meu delphi eh 7.0.8.1 -- _ Fellipe Henrique [EMAIL PROTECTED] Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ClientDataSet X MIDAS
nosso colega esta correto e voce pode declarar internamente em seu projeto também, mas caso voce use a tecnologia do clientdataset em mais de um aplicativo que estaram na mesma maquina e que talvez rodem concomitantemente, saiba que se declarar dentro do projeto voce estara gastando o dobro de memória numa coisa que poderia estar sendo lida dinamicamente através da dll externa. Em 27/07/06, Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Se vc usa ClientDataSet, independente de usar XML ou não, OBRIGATORIAMENTE vc tem que usar MIDAS.DLL. E ClientDataSet pode ser usado em aplicações de duas camadas (cliente/servidor clássico), com muitas vantagens em termos de performance e euxugamento da camada cliente. Na Internet o que mais tem é artigo falando do uso de ClientDataSet em aplicações cliente/servidor. É só procurar. Sds. From: Wroger [EMAIL PROTECTED] Reply-To: delphi-br@yahoogrupos.com.br To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] ClientDataSet X MIDAS Date: Wed, 26 Jul 2006 12:43:54 -0300 Pessoal, 2 dúvidas bem simples (acho)... Prá utilizar ClientDataSet (Para acessar arquivos do Tipo XML) ,eu preciso do MIDAS.DLL ??? Como faço em um Ambiente/Servidor que não tem o MIDAS ?? [ ]'s ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ _ MSN Messenger: converse com os seus amigos online. http://messenger.msn.com.br -- Iann DBA Postgresql, mysql, Firebird PHP, JAVA, Delphi , ColdFusion programmer PostgreSQL Brasil http://www.postgresql.org.br Delphi http://www.delphi.eti.br [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: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] CLIENTDATASET - Como atualizar?
Amigos, Obrigado pela atenção e desculpa a demora, conseguir fazer com as dicas de vocês e depois do select onde faço a inclusão dos dados, somente abrir e fechei o ClientDataSet e funcionou beleza. clientDataSet,close; clientDataSet,open; Valeu pelas dicas. João S. Araújo [EMAIL PROTECTED] escreveu: Bom dia pessoal, imagino eu que a dúvida do Luis Jr. é mesma dúvida minha. Dirferente dele eu estou trabalhando com o IBDataSet, e um dataset quando é aberto ele executa toda a query e joga os dados para a memória ram, então vamos supor que dois usuários abram o mesmo dataset da mesma tabela, o 1º usuário irá somente navegar pelos registros, enquanto que o 2º irá fazer modificações. Quando o 1º usuário estiver navegando pelo registro nº 9 por exemplo, e o 2º usuário fizer modificações no 10º registro, agora vem a pergunta, tem como essas modificações feitas pelo 2º usuário serem exibidas para o 1º usuário quando ele pedir o próximo registro sem que o 1º usuário tenha que fechar e abir o dataset novamente? Bem acho que era isso... De qualquer forma estou com essa dúvida, se alguém puder ajudar, fico grato... imensamente grato... Obrigado João - Original Message - From: Walter Alves Chagas Junior [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Monday, July 17, 2006 8:21 AM Subject: RES: [delphi-br] CLIENTDATASET - Como atualizar? Voce pode dar um ClientDataset.Refresh, mas o estranho é que ele já faz isto automáticamente uma vez que o CDS trabalha com dados na memória e não na tabela. []s Walter Alves Chagas Junior Projeto e desenvolvimento de sistemas Telemont Engenharia de telecomunicações S/A Belo Horizonte - MG - Brasil [EMAIL PROTECTED] Fone: (31) 3389-8215 Fax: (31) 3389-8200 Parabens Telemont - Somos a 8ª maior empresa do Brasil!! -Mensagem original- De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Luis Almeida Enviada em: domingo, 16 de julho de 2006 23:33 Para: Delph-Br Delphi Assunto: [delphi-br] CLIENTDATASET - Como atualizar? Amigos, Como faço para atualizar um ClientDataSet? Este ClientDataSet carrega um DBLookupComboBox, onde traz todos os registro de uma determinada tabela, o qual, gravo em uma outra. Porém, quando incluo um novo registro na tabela A e tento visualiza-lo através do DBLookupCombobox na tabela B, não aparece. Só está atualizando depois que fecho a aplicação. O que devo fazer amigos? Estou usando uma Query+DataSetProvider+ClientDataSet, em um Data Module Valeu e obrigado Luis Jr __ 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] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos Luis Jr __ 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] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] ClientDataSet X MIDAS
Acho que sim... até onde eu sei, todas as vezes que vc utilizar um TClientDataSet em uma aplicação, esta aplicação irá requerer o midas.dll (alguem me corrija se estiver errado por favor) para suprimir isso é só vc declarar a unit MidasLib no seu projeto (preferencialmente no arquivo de projeto mesmo) Em 26/07/06, Wroger [EMAIL PROTECTED] escreveu: Pessoal, 2 dúvidas bem simples (acho)... Prá utilizar ClientDataSet (Para acessar arquivos do Tipo XML) ,eu preciso do MIDAS.DLL ??? Como faço em um Ambiente/Servidor que não tem o MIDAS ?? [ ]'s ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ [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: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] ClientDataSet X MIDAS
Sem ela não vai funcionar. Distribua a midas.dll com seu exe. Mas até onde eu sei existe um rolyat a ser pago em aplicações comerciais que a usam. Nao me pergunte como. - Original Message - From: Wroger To: delphi-br@yahoogrupos.com.br Sent: Wednesday, July 26, 2006 12:43 PM Subject: [delphi-br] ClientDataSet X MIDAS Pessoal, 2 dúvidas bem simples (acho)... Prá utilizar ClientDataSet (Para acessar arquivos do Tipo XML) ,eu preciso do MIDAS.DLL ??? Como faço em um Ambiente/Servidor que não tem o MIDAS ?? [ ]'s ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ [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: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] ClientDataSet X MIDAS
É isso aí. - Original Message - From: Daniel Bastos To: delphi-br@yahoogrupos.com.br Sent: Wednesday, July 26, 2006 1:22 PM Subject: Re: [delphi-br] ClientDataSet X MIDAS Acho que sim... até onde eu sei, todas as vezes que vc utilizar um TClientDataSet em uma aplicação, esta aplicação irá requerer o midas.dll (alguem me corrija se estiver errado por favor) para suprimir isso é só vc declarar a unit MidasLib no seu projeto (preferencialmente no arquivo de projeto mesmo) Em 26/07/06, Wroger [EMAIL PROTECTED] escreveu: Pessoal, 2 dúvidas bem simples (acho)... Prá utilizar ClientDataSet (Para acessar arquivos do Tipo XML) ,eu preciso do MIDAS.DLL ??? Como faço em um Ambiente/Servidor que não tem o MIDAS ?? [ ]'s ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ [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: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
RE: [delphi-br] ClientDataSet X MIDAS
Se vc usa ClientDataSet, independente de usar XML ou não, OBRIGATORIAMENTE vc tem que usar MIDAS.DLL. E ClientDataSet pode ser usado em aplicações de duas camadas (cliente/servidor clássico), com muitas vantagens em termos de performance e euxugamento da camada cliente. Na Internet o que mais tem é artigo falando do uso de ClientDataSet em aplicações cliente/servidor. É só procurar. Sds. From: Wroger [EMAIL PROTECTED] Reply-To: delphi-br@yahoogrupos.com.br To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] ClientDataSet X MIDAS Date: Wed, 26 Jul 2006 12:43:54 -0300 Pessoal, 2 dúvidas bem simples (acho)... Prá utilizar ClientDataSet (Para acessar arquivos do Tipo XML) ,eu preciso do MIDAS.DLL ??? Como faço em um Ambiente/Servidor que não tem o MIDAS ?? [ ]'s ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ _ MSN Messenger: converse com os seus amigos online. http://messenger.msn.com.br -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] CLIENTDATASET - Como atualizar?
Bom dia pessoal, imagino eu que a dúvida do Luis Jr. é mesma dúvida minha. Dirferente dele eu estou trabalhando com o IBDataSet, e um dataset quando é aberto ele executa toda a query e joga os dados para a memória ram, então vamos supor que dois usuários abram o mesmo dataset da mesma tabela, o 1º usuário irá somente navegar pelos registros, enquanto que o 2º irá fazer modificações. Quando o 1º usuário estiver navegando pelo registro nº 9 por exemplo, e o 2º usuário fizer modificações no 10º registro, agora vem a pergunta, tem como essas modificações feitas pelo 2º usuário serem exibidas para o 1º usuário quando ele pedir o próximo registro sem que o 1º usuário tenha que fechar e abir o dataset novamente? Bem acho que era isso... De qualquer forma estou com essa dúvida, se alguém puder ajudar, fico grato... imensamente grato... Obrigado João - Original Message - From: Walter Alves Chagas Junior [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Monday, July 17, 2006 8:21 AM Subject: RES: [delphi-br] CLIENTDATASET - Como atualizar? Voce pode dar um ClientDataset.Refresh, mas o estranho é que ele já faz isto automáticamente uma vez que o CDS trabalha com dados na memória e não na tabela. []s Walter Alves Chagas Junior Projeto e desenvolvimento de sistemas Telemont Engenharia de telecomunicações S/A Belo Horizonte - MG - Brasil [EMAIL PROTECTED] Fone: (31) 3389-8215 Fax: (31) 3389-8200 Parabens Telemont - Somos a 8ª maior empresa do Brasil!! -Mensagem original- De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Luis Almeida Enviada em: domingo, 16 de julho de 2006 23:33 Para: Delph-Br Delphi Assunto: [delphi-br] CLIENTDATASET - Como atualizar? Amigos, Como faço para atualizar um ClientDataSet? Este ClientDataSet carrega um DBLookupComboBox, onde traz todos os registro de uma determinada tabela, o qual, gravo em uma outra. Porém, quando incluo um novo registro na tabela A e tento visualiza-lo através do DBLookupCombobox na tabela B, não aparece. Só está atualizando depois que fecho a aplicação. O que devo fazer amigos? Estou usando uma Query+DataSetProvider+ClientDataSet, em um Data Module Valeu e obrigado Luis Jr __ 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] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] ClientDataSet com Join!!
No evento OnGetTableName, do provider, coloque: TableName := TAB_CONVENIO_PESSOA Na propriedade ProviderFlags, do TField associado à coluna NOM_CONVENIO, coloque tudo igual a False. Espero não ter esquecido de nada... mas eh por ae. []´s --- Rodrigo de Moura [EMAIL PROTECTED] escreveu: Boa Tarde Pessoal, Estou com o seguinte problema: tenho uma grade ligada ao quarteto TSQLQuery - ClientDataSet - Provider - DataSource. Tenho um select que faz um join com outra tabela para trazer o nome da chave estrangeira referida. Mas quando tento gravar pela grade me dá um erro dizendo que a coluna 'NOM_CONVENIO' não pertence a tabela referenciada. Explicando como fiz a tela: Tenho um edit onde retorno o nome do cliente e no exit desse edit abro o ClientDataSet da grade passando o código do cliente como parâmetro, o select da grade é o mostrado abaixo: SELECT TCP.COD_PESSOA, TCP.COD_CONVENIO, TCP.NUM_CONVENIO, TCP.DTA_VLD_CONVENIO, TC.NOM_CONVENIO FROM TAB_CONVENIO_PESSOA TCP INNER JOIN TAB_CONVENIO TC ON TCP.COD_CONVENIO = TC.COD_CONVENIO INNER JOIN TAB_PESSOA TP ON TCP.COD_PESSOA = TP.COD_PESSOA WHERE TCP.COD_PESSOA = :COD_PESSOA Na grade eu tenho as seguinte colunas: nome do convênio (NOM_CONVENIO), nº do cartão (NUM_CONVENIO) e validade do convênio (DTA_VLD_CONVENIO). Na coluna NOM_CONVENIO busco o nome do convênio para apresentar na grade e preencho os outros dados na grade mesmo. Quando dou seta para baixo, no evento onKeyDown para salvar o registro me dá a mensagem: Column 'NOM_CONVENIO' not belongs to referenceed table. Utilizo as linhas de código abaixo no OnKeyDown: if(Key = vk_down) then begin if(cdsConvenio.ApplyUpdates(0) 0) then cdsConvenio.CancelUpdates; end; A tabela em questão que a mensagem se refere é a TAB_CONVENIO_PESSOA que é a tabela de ligação entre a TAB_PESSOA (cliente) e a TAB_CONVENIO, onde os registros devem ser inseridos. Senhores como resolvo essa questão, pois não quero usar campo lookup? Já ouvi falar dos Providers Flags, mas nunca fiz nada desse tipo, portanto estou meio perdido. Qualquer ajuda será bem vinda, inclusive links de artigos sobre o assunto!! Muito obrigado. Atenciosamente, Rodrigo de Moura [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM http://br.groups.yahoo.com/group/delphi-br/messages [EMAIL PROTECTED] Links do Yahoo! Grupos http://br.yahoo.com/info/utos.html Luis Alberto Belo Horizonte - MG ___ Yahoo! doce lar. Faça do Yahoo! sua homepage. http://br.yahoo.com/homepageset.html -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] ClientDataSet - Nao posso ter campos com mais de 30 caracteres em seus nomes
eu ja tive este problea e so solucionei qdo limitei o nome de meus campos a 30 caracteres.. []´s Bruno Lichot Micrologos Dream Team Equipe Editorial ClubeDelphi DevMedia [EMAIL PROTECTED] [EMAIL PROTECTED] www.micrologos.com.br - www.clubedelphi.net - www.delphirio.assespro-rj.org.br - Original Message - From: Paulo [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Tuesday, November 29, 2005 5:19 PM Subject: [delphi-br] ClientDataSet - Nao posso ter campos com mais de 30 caracteres em seus nomes Pessoal: Pergunta resumida: O ClientDataSet nao consegue ler corretamente nomes de campos que possuam mais de 30 caracteres ? (quando eu tento criar um campo persistente a partir de um campo que possui nome com mais de 30 caracteres, o ClientDataSet trunca para 30 caracteres, e depois ocorre erro em tempo de execucao, pois no ApplyUpdates o nome de campo truncado nao e' encontrado no servidor Caso seja necessario para entenderem melhor minha dificuldade, seguem maiores detalhes no final deste e-mail Grato pela atencao de todos Paulo a) Uso o Delphi 7 com DBExpress e InterBase 6 b) Estou com o seguinte problema: Tenho alguns campos que possuem mais de 30 caracteres em seus nomes. Por exemplo, o nome do campo abaixo tem 31 caracteres: DATINICIOPROCESSAMENTO_PREVISTO c) Quando eu executo um clique-duplo em um ClientDataSet que esta' fazendo acesso `a tabela que possui esse campo (atraves de um SQLDataSet e DataSetProvider), o campo e' criado no ClientDataSet (ou seja, o campo persistente), a propriedade FieldName desse campo persistente trunca o ultimo caractere do nome do campo. Assim: DATINICIOPROCESSAMENTO_PREVIST d) Ao rodar o programa, o ClientDataSet abre normalmente... Mas quando eu tento gravar um registro, aparece mensagem dizendo que a coluna DATINICIOPROCESSAMENTO_PREVIST e' desconhecida (porque seu nome na tabela contem um caractere a mais - a letra O). e) Tentei mudar por conta propria a propriedade FieldName para os 31 caracteres, mas neste caso quando tento abrir o ClientDataSet (ainda em tempo de projeto), aparece mensagem que o campo DATINICIOPROCESSAMENTO_PREVISTO nao foi encontrado (em tempo de execucao aparece tambem um erro). Pergunta: Ha' alguma solucao para resolver este problema, ou terei de alterar os nomes dos campos na estrutura do BD, para que tenham no maximo 30 caracteres ? [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] ClientDataSet - Nao posso ter campos com mais de 30 caracteres em seus nomes
Realmente... talvez nem seja um Bug do DBExpress, e sim uma adaptação de mercado, visto que alguns SGDB não aceitam objetos com mais de 30 caracteres O melhor mesmo é reduzir o nome do campo Bruno Lichot - Micrologos [EMAIL PROTECTED] escreveu: eu ja tive este problea e so solucionei qdo limitei o nome de meus campos a 30 caracteres.. []´s Bruno Lichot Micrologos Dream Team Equipe Editorial ClubeDelphi DevMedia [EMAIL PROTECTED] [EMAIL PROTECTED] www.micrologos.com.br - www.clubedelphi.net - www.delphirio.assespro-rj.org.br - Original Message - From: Paulo [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Tuesday, November 29, 2005 5:19 PM Subject: [delphi-br] ClientDataSet - Nao posso ter campos com mais de 30 caracteres em seus nomes Pessoal: Pergunta resumida: O ClientDataSet nao consegue ler corretamente nomes de campos que possuam mais de 30 caracteres ? (quando eu tento criar um campo persistente a partir de um campo que possui nome com mais de 30 caracteres, o ClientDataSet trunca para 30 caracteres, e depois ocorre erro em tempo de execucao, pois no ApplyUpdates o nome de campo truncado nao e' encontrado no servidor Caso seja necessario para entenderem melhor minha dificuldade, seguem maiores detalhes no final deste e-mail Grato pela atencao de todos Paulo a) Uso o Delphi 7 com DBExpress e InterBase 6 b) Estou com o seguinte problema: Tenho alguns campos que possuem mais de 30 caracteres em seus nomes. Por exemplo, o nome do campo abaixo tem 31 caracteres: DATINICIOPROCESSAMENTO_PREVISTO c) Quando eu executo um clique-duplo em um ClientDataSet que esta' fazendo acesso `a tabela que possui esse campo (atraves de um SQLDataSet e DataSetProvider), o campo e' criado no ClientDataSet (ou seja, o campo persistente), a propriedade FieldName desse campo persistente trunca o ultimo caractere do nome do campo. Assim: DATINICIOPROCESSAMENTO_PREVIST d) Ao rodar o programa, o ClientDataSet abre normalmente... Mas quando eu tento gravar um registro, aparece mensagem dizendo que a coluna DATINICIOPROCESSAMENTO_PREVIST e' desconhecida (porque seu nome na tabela contem um caractere a mais - a letra O). e) Tentei mudar por conta propria a propriedade FieldName para os 31 caracteres, mas neste caso quando tento abrir o ClientDataSet (ainda em tempo de projeto), aparece mensagem que o campo DATINICIOPROCESSAMENTO_PREVISTO nao foi encontrado (em tempo de execucao aparece tambem um erro). Pergunta: Ha' alguma solucao para resolver este problema, ou terei de alterar os nomes dos campos na estrutura do BD, para que tenham no maximo 30 caracteres ? [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Yahoo! Grupos, um serviço oferecido por:PUBLICIDADE var lrec_target=_blank;var lrec_URL=new Array(); lrec_URL[1]=http://br.rd.yahoo.com/SIG=12f6jli2p/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111264:HM/Y=BR/EXP=1133301204/A=2950750/R=0/id=flashurl/SIG=10tift5qr/*http://br.movies.yahoo.com/;; var lrec_flashfile=http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0901_lrec_cinema_calendario.swf?clickTAG=javascript:LRECopenWindow(1); var lrec_altURL=http://br.rd.yahoo.com/SIG=12f6jli2p/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111264:HM/Y=BR/EXP=1133301204/A=2950750/R=1/id=altimg/SIG=10tift5qr/*http://br.movies.yahoo.com/;; var lrec_altimg=http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0829_lrec_cinema_calendario.gif;; var lrec_width=300;var lrec_height=250; - Links do Yahoo! Grupos Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. - Yahoo! doce lar. Faça do Yahoo! sua homepage. [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: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] ClientDataSet - Como trazer novamente um registro doservidor, no OnReconcileError
Clériston: Não sei se vai resolver o seu caso, mais eu faço assim if cds_padrao.ApplyUpdates(0) 0 then cds_padrao.UndoLastChange(true); Agradeco muito sua atencao. Testei sua idéia, mas dessa forma o usuário fica com o registro na tela no estado em que ele estava antes de comeca a fazer sua alteracao. Mas o que eu gostaria de fazer era trazer novamente o registro que esta' no servidor, para que o usuario que recebeu o erro pudesse ver o registro como ele se encontra atualmente no servidor (ja' com as modificacoes feitas pelo outro usuario). Se alguem tiver mais alguma ideia, agradeco muito se enviar. Paulo -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html