Re: [delphi-br] Desempenho Firebird
Oi Eny, tudo que os rapazes postaram acima é verdadeiro. Qualquer banco até mesmo o Firebird ue praticamente não precisa de nenhum tunning precisa de uma configuração e uma correta forma de se lidar, o Firebird ainda é tão divulgado por questões históricas ele é uma versão aberta que se originou do Fork do InterBase 6.0 beta, em junho do ano 2000. O InterBase é um dos melhores bancos com que já tive o prazer te trabalhar e ele não morreu existe aí a versão 2009 e a próxima versão vem 64 bits e com muitos outros recursos, essas bancos tem a caractereistica de vc ter que saber trabalhar bem com a s transações se uma só transação fica aberta por tempo indeterminado podem ocorrer sérios problemas de performance, some-se isso o fato de muitos desenvolvedores não criar índices corretamente, má normalização, configruação do Cache adequadamente, backup e sweep, escolha da versão do servidor, que sistema operacional vai rodar etc... Eu tenho uma aplicação que tem em torno de 350 usuários simultâneos em torno de 100 Gigabytes com milhares de transações diárias. Sem problema de performance, agora tudo bem pensado e devidamente mantido. Já vi siuações ruims em bancos Oracle, SQLServer, PostGreSQL também por falta de tunning e configuração. Já vi Oracle Ranger numa aplicaçãozinha besta, cada caso é um caso. Firebird tem recursoso ue só recentemente o SQLServer veio ter, por exemplo. Dá uma olhadinha aquihttp://www.firebase.com.br/fb/artigo.php?id=2100 Vc que mora no Interior de São Paulo tenta acompanhar uma Firebird Developers Dayno site da FireBase tem sempre notícias. Sucesso e saúde ! Marcelo Fortes. --- Em qua, 14/7/10, Eny Urias enyur...@yahoo.com.br escreveu: De: Eny Urias enyur...@yahoo.com.br Assunto: [delphi-br] Desempenho Firebird Para: delphi-br@yahoogrupos.com.br Data: Quarta-feira, 14 de Julho de 2010, 10:26 Acabei de falar com um amigo que trabalha numa empresa de rastreamento de veículos onde as informações chegam a cada milésimos de segundo e ele me disse exatamente assim: Tirei o firebird de todos os sistemas esta semana ficou 10 80 % mais rápido foi a maior c...@#$ colocar aquele firebird a coisa cresceu e ele não dava conta ... posso dizer uma coisa os plantões estão muito mais sussegados... Eu sempre tive essa dúvida... Porque o Firebird ainda é tão divulgado e utilizado entre os delphianos? Qual a vantagem em relação as versões Express do SQL e do Oracle? Existem outros bancos free bons também, não? -- Eny Trova Urias Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, mas um hábito- Aristóteles [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] Desempenho Firebird
Realmente, Uso muito o FireBird em ambientes de missão critica, tenho casos de mais de 200 conexões simultâneas em processos que demanda de alta velocidade e segurança. Grande parte da solução de velocidade está na modelagem, por isso que no inicio do artigo da edição 74 da Active Delphi onde falo sobre desenvolvimento comercial, investi uma edição inteira sobre as vantagens e em técnicas de modelagem. E como o Ricardo falou, é preciso refinar a configuração do banco. Definir corretamente o Page size e o buffers so pra começar, e se tem muita transação, talvez mexer no swwep interval ou programar para o sweep rodar em horário marcado. Utilizar técnicas de reorganização de índices periódicas e boas praticas para o tamanho de arquivos bem como o hardware utilizado. Em nenhuma de minhas aplicações criticas com FireBird usei o Windows como Servidor de Banco de Dados. Sempre usei o Linux. É bem verdade que em alguns casos onde não somente o volume de dados ficou bem maior, mas como a concorrência, eu parti para o InterBase pois é nativo SMP e tem um poder de resposta e performance bem maior que o FireBird, ou seja, em algum momento encontrei motivos para usar outra solução de banco. Uma outra vantagem do InterBase é a segurança, o journaling e as ferramentas de monitoramento e sua gestão de processo e memória. O ideal é você desenhar o tamanho do seu sistema, o numero de conexoes simultâneas, os processo mais freqüentes e o tamanho da massa de dados e com isso aplicar as melhores técnicas de configuração e tunnig e fazer testes de carga e performance. From: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] On Behalf Of Ricardo César Cardoso Sent: quarta-feira, 14 de julho de 2010 22:26 To: delphi-br@yahoogrupos.com.br Subject: Re: [delphi-br] Desempenho Firebird Desconfio desse tipo de chute. Já vi gente dizendo Firebird em sistemas de missão critica (acho que um deles é o Bruno Lichot). Não posso dizer muito pois não tenho nenhum sistema de missão critica, mas posso dizer que no quesito VOLUME DE DADOS o FB aguenta o tranco. Um camarada aqui tem um sistema que já acumulou 40 GB de dados dos mais diversos na base e roda que é uma belezinha .Tem foto, áudio, vídeo e até planilhas e arquivos PDFs gravados no BD juntos com os campos de dados. Todo BD que trabalha em missão crítica (eu até diria que até mesmo o hardware) precisa de um tuning ou de refinamentos para melhorar a performance. A diferença é que no FB esse tipo de ajuste tem que ser feito pelo DBA no braço. Ou seja, não há wizards que fazem todo o trabalho pesado. Vc tem que conhecer os conceitos para saber exatamente o que está fazendo. Outros fatores são o processador em uso e a versão do BD que está usando (SuperClassic, ClassicServer, SuperServer) que pode oferecer mais refinamentos. Só por desencargo de consciência, indica pro teu amigo ler isso aqui (http://www.sinatica.com/blog/br/index.php/artigos/firebird-superserver-classicserver-ou-superclassic) e acompanhar a Lista Firebase BR. Um BD que tenho vontade (só vontade, pois tempo eu não tenho mesmo...) de testar é o PostGree é gratuito e aguenta o tranco como os majors, pelo menos é o que dizem. Uma última dúvida: que BD entrou no lugar do FB? Tanto o Oracle XE quando o SQL Server Express tem limitações quanto ao tamanho máximo que o arquivo do BD pode assumir (acho que 4Gb em ambos) e no Oracle ainda há a limitação de núcleos de processador (só usa 1 núcleo). Atte, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em qua, 14/7/10, Eny Urias enyur...@yahoo.com.br mailto:enyurias%40yahoo.com.br escreveu: De: Eny Urias enyur...@yahoo.com.br mailto:enyurias%40yahoo.com.br Assunto: [delphi-br] Desempenho Firebird Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Data: Quarta-feira, 14 de Julho de 2010, 10:26 Acabei de falar com um amigo que trabalha numa empresa de rastreamento de veículos onde as informações chegam a cada milésimos de segundo e ele me disse exatamente assim: Tirei o firebird de todos os sistemas esta semana ficou 10 80 % mais rápido foi a maior c...@#$ colocar aquele firebird a coisa cresceu e ele não dava conta ... posso dizer uma coisa os plantões estão muito mais sussegados... Eu sempre tive essa dúvida... Porque o Firebird ainda é tão divulgado e utilizado entre os delphianos? Qual a vantagem em relação as versões Express do SQL e do Oracle? Existem outros bancos free bons também, não? -- Eny Trova Urias Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, mas um hábito- Aristóteles [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] Click
Re: RES: [delphi-br] MethodAddress retornando NIL
Para o método SetFocus, seria melhor vc chamar direto o método. Por exemplo, se vc estiver em um form, bastaria chamar Self.FocusControl(edit1) ou vc cria um método seu procedure TForm1.SetFocusComponent(AComponent: TComponent); begin if AComponent is TWinControl then TWinControl(AComponent).SetFocus; end; Que outros métodos vc precisa invocar? Praticamente todos os métodos comuns entre os componentes visuais, estão presentes em TControl e TWinControl, que são as classes base. Em 14 de julho de 2010 20:49, eric_developer developer.syst...@yahoo.comescreveu: executar métodos, irei passar para minha função, o objeto e a string com o nome do método, exemplo: myCallMethod( edit1, 'SETFOCUS' ) ; --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br, Fabricio Colombo fabricio.colombo@... escreveu O que vc está pretendendo fazer Eric? Em 14 de julho de 2010 16:02, Mário Guedes jmariogue...@...escreveu: Eu fiz assim: http://eugostododelphi.blogspot.com/2010/04/como-executar-um-metodo-pelo-nome.html *José Mário Silva Guedes* e-mail: jmariogue...@... jmarioguedes%40gmail.com [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 * 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: RES: [delphi-br] MethodAddress retornando NIL
isso é muito diferente do que preciso, mesmo assim obrigado. --- Em delphi-br@yahoogrupos.com.br, Fabricio Colombo fabricio.colombo@... escreveu Para o método SetFocus, seria melhor vc chamar direto o método. Por exemplo, se vc estiver em um form, bastaria chamar Self.FocusControl(edit1) ou vc cria um método seu procedure TForm1.SetFocusComponent(AComponent: TComponent); begin if AComponent is TWinControl then TWinControl(AComponent).SetFocus; end; Que outros métodos vc precisa invocar? Praticamente todos os métodos comuns entre os componentes visuais, estão presentes em TControl e TWinControl, que são as classes base. Em 14 de julho de 2010 20:49, eric_developer developer.syst...@...escreveu: executar métodos, irei passar para minha função, o objeto e a string com o nome do método, exemplo: myCallMethod( edit1, 'SETFOCUS' ) ; --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br, Fabricio Colombo fabricio.colombo.mva@ escreveu O que vc está pretendendo fazer Eric? Em 14 de julho de 2010 16:02, Mário Guedes jmarioguedes@escreveu: Eu fiz assim: http://eugostododelphi.blogspot.com/2010/04/como-executar-um-metodo-pelo-nome.html *José Mário Silva Guedes* e-mail: jmarioguedes@ jmarioguedes%40gmail.com [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] Desempenho Firebird
O que denegre o banco, ao meu ver, é que se ele exige ou pelo menos requeira um DBA para fazer o trabalho de ajuste e tunnagem do mesmo, aí vem muitas vezes o próprio desenvolvedor na base da fuçação mesmo pra tentar configurar. Acaba até configurando corretamente, mas depois de muito penar e gerar desgastes com o cliente. Muitos lugares, o desenvolvedor vai para uma filial, chega lá não tem nada estruturado para ele trabalhar e lá vai o cara atrasar seu cronograma e partir pro heroismo pra resolver problemas que não deveriam existir lá. A questão que vejo, é que muitas empresas e muitos cartolas nao entendem que no universo do desenvolvimento, cada macaco no seu galho. Banco de dados é com DBA, desenvolvimento é com o programador e levantamento de requisitos/mapeamento de processos é com o analista. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com SKYPE: WalterChagasJr - Original Message - From: Ricardo César Cardoso To: delphi-br@yahoogrupos.com.br Sent: Wednesday, July 14, 2010 10:26 PM Subject: Re: [delphi-br] Desempenho Firebird Desconfio desse tipo de chute. Já vi gente dizendo Firebird em sistemas de missão critica (acho que um deles é o Bruno Lichot). Não posso dizer muito pois não tenho nenhum sistema de missão critica, mas posso dizer que no quesito VOLUME DE DADOS o FB aguenta o tranco. Um camarada aqui tem um sistema que já acumulou 40 GB de dados dos mais diversos na base e roda que é uma belezinha .Tem foto, áudio, vídeo e até planilhas e arquivos PDFs gravados no BD juntos com os campos de dados. Todo BD que trabalha em missão crítica (eu até diria que até mesmo o hardware) precisa de um tuning ou de refinamentos para melhorar a performance. A diferença é que no FB esse tipo de ajuste tem que ser feito pelo DBA no braço. Ou seja, não há wizards que fazem todo o trabalho pesado. Vc tem que conhecer os conceitos para saber exatamente o que está fazendo. Outros fatores são o processador em uso e a versão do BD que está usando (SuperClassic, ClassicServer, SuperServer) que pode oferecer mais refinamentos. Só por desencargo de consciência, indica pro teu amigo ler isso aqui (http://www.sinatica.com/blog/br/index.php/artigos/firebird-superserver-classicserver-ou-superclassic) e acompanhar a Lista Firebase BR. Um BD que tenho vontade (só vontade, pois tempo eu não tenho mesmo...) de testar é o PostGree é gratuito e aguenta o tranco como os majors, pelo menos é o que dizem. Uma última dúvida: que BD entrou no lugar do FB? Tanto o Oracle XE quando o SQL Server Express tem limitações quanto ao tamanho máximo que o arquivo do BD pode assumir (acho que 4Gb em ambos) e no Oracle ainda há a limitação de núcleos de processador (só usa 1 núcleo). Atte, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em qua, 14/7/10, Eny Urias enyur...@yahoo.com.br escreveu: De: Eny Urias enyur...@yahoo.com.br Assunto: [delphi-br] Desempenho Firebird Para: delphi-br@yahoogrupos.com.br Data: Quarta-feira, 14 de Julho de 2010, 10:26 Acabei de falar com um amigo que trabalha numa empresa de rastreamento de veículos onde as informações chegam a cada milésimos de segundo e ele me disse exatamente assim: Tirei o firebird de todos os sistemas esta semana ficou 10 80 % mais rápido foi a maior c...@#$ colocar aquele firebird a coisa cresceu e ele não dava conta ... posso dizer uma coisa os plantões estão muito mais sussegados... Eu sempre tive essa dúvida... Porque o Firebird ainda é tão divulgado e utilizado entre os delphianos? Qual a vantagem em relação as versões Express do SQL e do Oracle? Existem outros bancos free bons também, não? -- Eny Trova Urias Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, mas um hábito- Aristóteles [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]
[delphi-br] Duvida sobre NFe com serviço (ISS)
Bom dia. Gostaria de tirar alguns duvidas a respeito de nota fiscal eletronica com NFe. Até onde sei notas de serviço eletronica não tem para todos as cidades mas existe uma informacao que me passaram a respeito que se o contribuinte tem Inscricao Estadual ele poderá emitir na NFe serviços e produtos juntos. Isso procede? Se sim, andei olhando o manual e tem campos para informar impostos ISS e um item que solicita: Informar o Item da lista de serviços da LC 116/03 em que se classifica o serviço. Isso seria como uma classificaçao fiscal de produto? Vou ter que adicionar por exemplo um cadastro no sistema de lista de serviços e aos serviços adicionados no sistema ele seleciona de qual lista se classifica? Idem produtos com classificaçao fiscal? -- Atenciosamente, Samuel M. Basso Cel: (54) 8135-3723 Skype: samuelbasso E-mail/MSN: samuelba...@gmail.com Web site: www.otimizy.com.br [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] sql simples mas nao funciona
Preciso buscar todos os clientes que não possuem pedidos tenho a tabela clientes e a tabela clientes já fiz assim: SELECT PED.*,CLI.CD_CLIENTE,CLI.FANTASIA FROM CLIENTE CLI LEFT OUTER JOIN PEDIDO PED ON (PED.CD_CLIENTE = CLI.CD_CLIENTE) WHERE CLI.CD_CLIENTE NOT IN (SELECT DISTINCT PED.CD_CLIENTE FROM PEDIDO PED) ORDER BY CLI.FANTASIA e nada e quando faço assim retorna errado o numero de pedidos para os clientes pois muitos possuem mais de 01 pedido e assim só apresenta 01 pedido SELECT CLI.CD_CLIENTE, PED.CD_CLIENTE, PED.CD_PEDIDO, count(PED.CD_PEDIDO) NPEDIDOS FROM PEDIDO PED LEFT OUTER JOIN CLIENTE CLI ON (CLI.CD_CLIENTE = PED.CD_CLIENTE ) GROUP BY 1,2,3 agradeço aos amigos que colaborarem preciso dos 2 tipos de retorno os que não possuem e os que possuem qual a quantidade? [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Desempenho Firebird
Olhem mais uma matéria que pode ajudar nessa conversa, Entendendo o 'lixo' no BD http://www.firebase.com.br/fb/artigo.php?id=2047 http://www.firebase.com.br/fb/artigo.php?id=2047 2010/7/15 Walter Chagas (Bol) wchag...@bol.com.br O que denegre o banco, ao meu ver, é que se ele exige ou pelo menos requeira um DBA para fazer o trabalho de ajuste e tunnagem do mesmo, aí vem muitas vezes o próprio desenvolvedor na base da fuçação mesmo pra tentar configurar. Acaba até configurando corretamente, mas depois de muito penar e gerar desgastes com o cliente. Muitos lugares, o desenvolvedor vai para uma filial, chega lá não tem nada estruturado para ele trabalhar e lá vai o cara atrasar seu cronograma e partir pro heroismo pra resolver problemas que não deveriam existir lá. A questão que vejo, é que muitas empresas e muitos cartolas nao entendem que no universo do desenvolvimento, cada macaco no seu galho. Banco de dados é com DBA, desenvolvimento é com o programador e levantamento de requisitos/mapeamento de processos é com o analista. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br wchagasj%40bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com whitesockets%40hotmail.com SKYPE: WalterChagasJr - Original Message - From: Ricardo César Cardoso To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Sent: Wednesday, July 14, 2010 10:26 PM Subject: Re: [delphi-br] Desempenho Firebird Desconfio desse tipo de chute. Já vi gente dizendo Firebird em sistemas de missão critica (acho que um deles é o Bruno Lichot). Não posso dizer muito pois não tenho nenhum sistema de missão critica, mas posso dizer que no quesito VOLUME DE DADOS o FB aguenta o tranco. Um camarada aqui tem um sistema que já acumulou 40 GB de dados dos mais diversos na base e roda que é uma belezinha .Tem foto, áudio, vídeo e até planilhas e arquivos PDFs gravados no BD juntos com os campos de dados. Todo BD que trabalha em missão crítica (eu até diria que até mesmo o hardware) precisa de um tuning ou de refinamentos para melhorar a performance. A diferença é que no FB esse tipo de ajuste tem que ser feito pelo DBA no braço. Ou seja, não há wizards que fazem todo o trabalho pesado. Vc tem que conhecer os conceitos para saber exatamente o que está fazendo. Outros fatores são o processador em uso e a versão do BD que está usando (SuperClassic, ClassicServer, SuperServer) que pode oferecer mais refinamentos. Só por desencargo de consciência, indica pro teu amigo ler isso aqui ( http://www.sinatica.com/blog/br/index.php/artigos/firebird-superserver-classicserver-ou-superclassic) e acompanhar a Lista Firebase BR. Um BD que tenho vontade (só vontade, pois tempo eu não tenho mesmo...) de testar é o PostGree é gratuito e aguenta o tranco como os majors, pelo menos é o que dizem. Uma última dúvida: que BD entrou no lugar do FB? Tanto o Oracle XE quando o SQL Server Express tem limitações quanto ao tamanho máximo que o arquivo do BD pode assumir (acho que 4Gb em ambos) e no Oracle ainda há a limitação de núcleos de processador (só usa 1 núcleo). Atte, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em qua, 14/7/10, Eny Urias enyur...@yahoo.com.brenyurias%40yahoo.com.br escreveu: De: Eny Urias enyur...@yahoo.com.br enyurias%40yahoo.com.br Assunto: [delphi-br] Desempenho Firebird Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Data: Quarta-feira, 14 de Julho de 2010, 10:26 Acabei de falar com um amigo que trabalha numa empresa de rastreamento de veículos onde as informações chegam a cada milésimos de segundo e ele me disse exatamente assim: Tirei o firebird de todos os sistemas esta semana ficou 10 80 % mais rápido foi a maior c...@#$ colocar aquele firebird a coisa cresceu e ele não dava conta ... posso dizer uma coisa os plantões estão muito mais sussegados... Eu sempre tive essa dúvida... Porque o Firebird ainda é tão divulgado e utilizado entre os delphianos? Qual a vantagem em relação as versões Express do SQL e do Oracle? Existem outros bancos free bons também, não? -- Eny Trova Urias Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, mas um hábito- Aristóteles [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] -- 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:
Res: [delphi-br] Desempenho Firebird
Taí... gostei! Realmente acho que o ideal é fazer parcerias com quem realmente entende da coisa... Mas, vai falar isso pro dono da empresa! Acho que o que aconteceu com meu amigo foi exatamente isso... Uma pessoa que não está mais na empresa colocou o sistema pra rodar com o FB... aí ele foi embora porque teve uma proposta melhor e sobrou pro cara do suporte dar manutenção no banco que, depois que a coisa ficou grande, não soube mais o que fazer... Mas essa profissão de DBA ainda é escassa aqui no interior... Acho rara a empresa que tem um cara pra cuidar do banco... Seria legal ter um parceiro para passar como deve ser configurado o banco, independente de qual seja. Agradeços a todos pelos esclarecimentos! -- 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, 15 de Julho de 2010 8:55:03 Assunto: Re: [delphi-br] Desempenho Firebird O que denegre o banco, ao meu ver, é que se ele exige ou pelo menos requeira um DBA para fazer o trabalho de ajuste e tunnagem do mesmo, aí vem muitas vezes o próprio desenvolvedor na base da fuçação mesmo pra tentar configurar. Acaba até configurando corretamente, mas depois de muito penar e gerar desgastes com o cliente. Muitos lugares, o desenvolvedor vai para uma filial, chega lá não tem nada estruturado para ele trabalhar e lá vai o cara atrasar seu cronograma e partir pro heroismo pra resolver problemas que não deveriam existir lá. A questão que vejo, é que muitas empresas e muitos cartolas nao entendem que no universo do desenvolvimento, cada macaco no seu galho. Banco de dados é com DBA, desenvolvimento é com o programador e levantamento de requisitos/mapeamento de processos é com o analista. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com SKYPE: WalterChagasJr - Original Message - From: Ricardo César Cardoso To: delphi-br@yahoogrupos.com.br Sent: Wednesday, July 14, 2010 10:26 PM Subject: Re: [delphi-br] Desempenho Firebird Desconfio desse tipo de chute. Já vi gente dizendo Firebird em sistemas de missão critica (acho que um deles é o Bruno Lichot). Não posso dizer muito pois não tenho nenhum sistema de missão critica, mas posso dizer que no quesito VOLUME DE DADOS o FB aguenta o tranco. Um camarada aqui tem um sistema que já acumulou 40 GB de dados dos mais diversos na base e roda que é uma belezinha .Tem foto, áudio, vídeo e até planilhas e arquivos PDFs gravados no BD juntos com os campos de dados. Todo BD que trabalha em missão crítica (eu até diria que até mesmo o hardware) precisa de um tuning ou de refinamentos para melhorar a performance. A diferença é que no FB esse tipo de ajuste tem que ser feito pelo DBA no braço. Ou seja, não há wizards que fazem todo o trabalho pesado. Vc tem que conhecer os conceitos para saber exatamente o que está fazendo. Outros fatores são o processador em uso e a versão do BD que está usando (SuperClassic, ClassicServer, SuperServer) que pode oferecer mais refinamentos. Só por desencargo de consciência, indica pro teu amigo ler isso aqui (http://www.sinatica.com/blog/br/index.php/artigos/firebird-superserver-classicserver-ou-superclassic) e acompanhar a Lista Firebase BR. Um BD que tenho vontade (só vontade, pois tempo eu não tenho mesmo...) de testar é o PostGree é gratuito e aguenta o tranco como os majors, pelo menos é o que dizem. Uma última dúvida: que BD entrou no lugar do FB? Tanto o Oracle XE quando o SQL Server Express tem limitações quanto ao tamanho máximo que o arquivo do BD pode assumir (acho que 4Gb em ambos) e no Oracle ainda há a limitação de núcleos de processador (só usa 1 núcleo). Atte, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em qua, 14/7/10, Eny Urias enyur...@yahoo.com.br escreveu: De: Eny Urias enyur...@yahoo.com.br Assunto: [delphi-br] Desempenho Firebird Para: delphi-br@yahoogrupos.com.br Data: Quarta-feira, 14 de Julho de 2010, 10:26 Acabei de falar com um amigo que trabalha numa empresa de rastreamento de veículos onde as informações chegam a cada milésimos de segundo e ele me disse exatamente assim: Tirei o firebird de todos os sistemas esta semana ficou 10 80 % mais rápido foi a maior c...@#$ colocar aquele firebird a coisa cresceu e ele não dava conta ... posso dizer uma coisa os plantões estão muito mais sussegados... Eu sempre tive essa dúvida... Porque o Firebird ainda é tão divulgado e utilizado entre os delphianos? Qual a vantagem em relação as versões Express do SQL e do Oracle? Existem
Re: [delphi-br] sql simples mas nao funciona
A solução não é a melhor, porém funciona. É possível efetuar o select utilizando-se de joins de várias maneiras. /* Clientes que não possuem pedidos */ select CLI.* from CLIENTE CLI where not exists (select 1 from PEDIDO PED where PED.CD_CLIENTE = CLI.CD_CLIENTE) /* Clientes que possuem pedidos */ select CLI.* from CLIENTE CLI where exists (select 1 from PEDIDO PED where PED.CD_CLIENTE = CLI.CD_CLIENTE) - ou - select CLI.* from CLIENTE CLI join PEDIDO PED on (CLI.CD_CLIENTE = PED.CD_CLIENTE) Espero ter colaborado. Em 15 de julho de 2010 09:26, alessandra porto alessandraport...@yahoo.com.br escreveu: Preciso buscar todos os clientes que não possuem pedidos tenho a tabela clientes e a tabela clientes já fizassim: SELECT PED.*,CLI.CD_CLIENTE,CLI.FANTASIA FROM CLIENTE CLI LEFT OUTER JOIN PEDIDO PED ON (PED.CD_CLIENTE = CLI.CD_CLIENTE) WHERE CLI.CD_CLIENTE NOT IN (SELECT DISTINCT PED.CD_CLIENTE FROM PEDIDO PED) ORDER BY CLI.FANTASIA e nada e quando faço assim retorna errado o numero de pedidos para os clientes pois muitos possuem mais de 01 pedidoe assim só apresenta 01 pedido SELECT CLI.CD_CLIENTE, PED.CD_CLIENTE, PED.CD_PEDIDO, count(PED.CD_PEDIDO) NPEDIDOS FROM PEDIDO PED LEFT OUTER JOIN CLIENTE CLI ON (CLI.CD_CLIENTE = PED.CD_CLIENTE ) GROUP BY 1,2,3 agradeço aos amigos que colaborarem preciso dos 2 tipos de retorno os que não possuem e os que possuem qual a quantidade? [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] sql simples mas nao funciona resolvido
Valeu amigos resolvido --- Em qui, 15/7/10, Humberto Oliveira holiveira.wordpr...@gmail.com escreveu: De: Humberto Oliveira holiveira.wordpr...@gmail.com Assunto: Re: [delphi-br] sql simples mas nao funciona Para: delphi-br@yahoogrupos.com.br Data: Quinta-feira, 15 de Julho de 2010, 10:24 A solução não é a melhor, porém funciona. É possível efetuar o select utilizando-se de joins de várias maneiras. /* Clientes que não possuem pedidos */ select CLI.* from CLIENTE CLI where not exists (select 1 from PEDIDO PED where PED.CD_CLIENTE = CLI.CD_CLIENTE) /* Clientes que possuem pedidos */ select CLI.* from CLIENTE CLI where exists (select 1 from PEDIDO PED where PED.CD_CLIENTE = CLI.CD_CLIENTE) - ou - select CLI.* from CLIENTE CLI join PEDIDO PED on (CLI.CD_CLIENTE = PED.CD_CLIENTE) Espero ter colaborado. Em 15 de julho de 2010 09:26, alessandra porto alessandraport...@yahoo.com.br escreveu: Preciso buscar todos os clientes que não possuem pedidos tenho a tabela clientes e a tabela clientes já fiz assim: SELECT PED.*,CLI.CD_CLIENTE,CLI.FANTASIA FROM CLIENTE CLI LEFT OUTER JOIN PEDIDO PED ON (PED.CD_CLIENTE = CLI.CD_CLIENTE) WHERE CLI.CD_CLIENTE NOT IN (SELECT DISTINCT PED.CD_CLIENTE FROM PEDIDO PED) ORDER BY CLI.FANTASIA e nada e quando faço assim retorna errado o numero de pedidos para os clientes pois muitos possuem mais de 01 pedido e assim só apresenta 01 pedido SELECT CLI.CD_CLIENTE, PED.CD_CLIENTE, PED.CD_PEDIDO, count(PED.CD_PEDIDO) NPEDIDOS FROM PEDIDO PED LEFT OUTER JOIN CLIENTE CLI ON (CLI.CD_CLIENTE = PED.CD_CLIENTE ) GROUP BY 1,2,3 agradeço aos amigos que colaborarem preciso dos 2 tipos de retorno os que não possuem e os que possuem qual a quantidade? [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]
[delphi-br] Abrir aquivo txt no notepad
É possível abrir um arquivo txt no notepad com uma fonte pré-definida? Eu gostaria de usar a fonte Courier, pois se cada letra ocupar um tamanho diferente o texto fica todo desconfigurado. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Abrir aquivo txt no notepad
O notepad (bloco de notas) não aceita formatação de texto, é para trabalhar com texto puro. Em 15 de julho de 2010 11:03, Alisson alss...@yahoo.com.br escreveu: É possível abrir um arquivo txt no notepad com uma fonte pré-definida? Eu gostaria de usar a fonte Courier, pois se cada letra ocupar um tamanho diferente o texto fica todo desconfigurado.Trocar para: Só Textodelphi-br-traditio...@yahoogrupos.com.br?subject=mudar+formato+de+envio:+Tradicional, Resenha Diáriadelphi-br-dig...@yahoogrupos.com.br?subject=envio+de+email:+Resenha Sair do grupo delphi-br-unsubscr...@yahoogrupos.com.br?subject=sair+do+grupo Termos de uso http://br.yahoo.com/info/utos.html . -- Att, Marcos A. Ferreira São Paulo - Brasil +55 11 9309-3936 +55 11 8905-9889 MSN: maferre...@hotmail.it Google Talk: maferreira.f2 Skype: maferreira.f2 LinkedIn: http://www.linkedin.com/in/maferreira/ Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar, ou divulgar as informações nela contidas ou tomar qualquer ação baseada nestas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente o remetente, respondendo o email e em seguida, apague-o. Agradecemos sua cooperação. This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please, advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ENVIRONMENT commitment and responsibility, think about Before Printing. [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] Abrir aquivo txt no notepad
Não. O Notepad exibe text puro sem formatação alguma. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com SKYPE: WalterChagasJr - Original Message - From: Alisson To: delphi-br@yahoogrupos.com.br Sent: Thursday, July 15, 2010 11:03 AM Subject: [delphi-br] Abrir aquivo txt no notepad É possível abrir um arquivo txt no notepad com uma fonte pré-definida? Eu gostaria de usar a fonte Courier, pois se cada letra ocupar um tamanho diferente o texto fica todo desconfigurado. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Procurar Nome da tabela dentro da query
Alguém tem algum algoritimo para capturar o nome da tabela a que se refere uma query? por exemplo um objeto TsqlQuery com a instrução: ' select nome,telefone from CLIENTE where idcliente = :cliente '; o algoritimo iria retornar 'CLIENTE'. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Procurar Nome da tabela dentro da query
O problema é que a Query trabalha com um dataset e não específicamente com uma tabela. E, antes que você pergunte, o dataset depende é da sentença que ce jogou no banco. Portanto, se voce montou um SQL contendo joins, não dá mais pra referir a query a uma determinada tabela. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com SKYPE: WalterChagasJr - Original Message - From: Evaldo To: delphi-br@yahoogrupos.com.br Sent: Thursday, July 15, 2010 11:41 AM Subject: [delphi-br] Procurar Nome da tabela dentro da query Alguém tem algum algoritimo para capturar o nome da tabela a que se refere uma query? por exemplo um objeto TsqlQuery com a instrução: ' select nome,telefone from CLIENTE where idcliente = :cliente '; o algoritimo iria retornar 'CLIENTE'. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] Procurar Nome da tabela dentro da query
Não tem algoritmo ou fórmula mirabolante pra esse caso. Usando a função Pos(), peque a posição da palavra FROM e a posição da próxima cláusula seguinte ao FROM (que pode ser WHERE, GROUP BY, HAVING, ORDER BY ou qualquer uma outra, dependendo do banco de dados que estejas usando). Recorte a string dentro desse faixa de posições e analise para obter o(s) nome(s) da(s) tabela(s) desejada(s). Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Evaldo Enviada em: quinta-feira, 15 de julho de 2010 10:41 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Procurar Nome da tabela dentro da query Alguém tem algum algoritimo para capturar o nome da tabela a que se refere uma query? por exemplo um objeto TsqlQuery com a instrução: ' select nome,telefone from CLIENTE where idcliente = :cliente '; o algoritimo iria retornar 'CLIENTE'. [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [delphi-br] MethodAddress retornando NIL
Implementei sem problemas na semana passada em um sistema meu. Qual o real problema que vc está tendo? Sua procedure seria assim: unit Unit2; interface uses ...; type TForm2 = class(TForm) ... private procedure ExecMethod(NoObjecto: TObject; Nome_Metodo: String); ... var Form2: TForm2; type //tem que ser aqui, não sei explicar por que, mas se por acima do form no mesmo type causa erro TExec = procedure of object; ... procedure TForm2.ExecMethod(NoObjecto: TObject; Nome_Metodo: String); var Rotina: TMethod; Exec: TExec; begin Rotina.Data := Pointer(NoObjeto); Rotina.Code := NoObjeto.MethodAddress(Nome_Metodo);//Aqui que causa erro pra vc? if not Assigned(Rotina.Code) then exit; Exec := TExec(Rotina); Exec; end; ... O que eu percebi é se o método que vc quer chamar nã estiver nas declarações do FORM no lugar certo, o MethodAddress não encontra, tentei por em private e não achou, troquei o local da declaração pra acima do private e funcionou, no meu caso chamo uma procedure de outro form, pra que nesse não tenha acesso a banco de dados e está funcionando. Verifique teu código e se tiver mais erros nos avise pra ver se pudemos lhe ajudar. Alosi DigitalSystem Bento Gonçalves-RS eric_developer escreveu: isso é muito diferente do que preciso, mesmo assim obrigado. --- Em delphi-br@yahoogrupos.com.br, Fabricio Colombo fabricio.colombo@... escreveu Para o método SetFocus, seria melhor vc chamar direto o método. Por exemplo, se vc estiver em um form, bastaria chamar Self.FocusControl(edit1) ou vc cria um método seu procedure TForm1.SetFocusComponent(AComponent: TComponent); begin if AComponent is TWinControl then TWinControl(AComponent).SetFocus; end; Que outros métodos vc precisa invocar? Praticamente todos os métodos comuns entre os componentes visuais, estão presentes em TControl e TWinControl, que são as classes base. Em 14 de julho de 2010 20:49, eric_developer developer.syst...@...escreveu: executar métodos, irei passar para minha função, o objeto e a string com o nome do método, exemplo: myCallMethod( edit1, 'SETFOCUS' ) ; --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br, Fabricio Colombo fabricio.colombo.mva@ escreveu O que vc está pretendendo fazer Eric? Em 14 de julho de 2010 16:02, Mário Guedes jmarioguedes@escreveu: Eu fiz assim: http://eugostododelphi.blogspot.com/2010/04/como-executar-um-metodo-pelo-nome.html *José Mário Silva Guedes* e-mail: jmarioguedes@ jmarioguedes%40gmail.com [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] Adicionar colunas em TcxGrid
Talvez isso te ajude, for iAux:=1 to iNum_Parcelas do begin gridCronogramaBanda.CreateColumn.DataBinding.FieldName:= sTitulo+'_'+IntToStr(iAux); end; João Carlos Em 15/07/2010 01:03, Vinicius Santos escreveu: Em 14-07-2010 17:04, Murilo Cunha escreveu: Pessoal, Como eu faço para adicionar colunas em meu TcxGrid (grid da DevExpress)?? Obrigado MuriloCunha Faz 1 mês que não vejo a cara do DevExpress(infelizmente) por isso não consigo te passar de cabeça, minha memória sempre me deixa na mão... Mas na documentação tem muita coisa e utilize a base de conhecimento deles em www.devexpress.com A base conhecimento deles é nota 10!!
Re: [delphi-br] sql simples mas nao funciona
No primeiro caso, acredito que o not exists funciona SELECT PED.*,CLI.CD_CLIENTE,CLI.FANTASIA FROM CLIENTE CLI LEFT OUTER JOIN PEDIDO PED ON (PED.CD_CLIENTE = CLI.CD_CLIENTE) WHERE NOT EXISTS(SELECT PED.CD_CLIENTE FROM PEDIDO PED WHERE CLI.CD_CLIENTE = PED.CD_CLIENTE) ORDER BY CLI.FANTASIA No Segundo caso, vc não pode incluir o numero do pedido no select SELECT CLI.CD_CLIENTE, count(PED.CD_PEDIDO) NPEDIDOS FROM PEDIDO PED LEFT OUTER JOIN CLIENTE CLI ON (CLI.CD_CLIENTE = PED.CD_CLIENTE ) GROUP BY 1 Em 15 de julho de 2010 09:26, alessandra porto alessandraport...@yahoo.com.br escreveu: Preciso buscar todos os clientes que não possuem pedidos tenho a tabela clientes e a tabela clientes já fizassim: SELECT PED.*,CLI.CD_CLIENTE,CLI.FANTASIA FROM CLIENTE CLI LEFT OUTER JOIN PEDIDO PED ON (PED.CD_CLIENTE = CLI.CD_CLIENTE) WHERE CLI.CD_CLIENTE NOT IN (SELECT DISTINCT PED.CD_CLIENTE FROM PEDIDO PED) ORDER BY CLI.FANTASIA e nada e quando faço assim retorna errado o numero de pedidos para os clientes pois muitos possuem mais de 01 pedidoe assim só apresenta 01 pedido SELECT CLI.CD_CLIENTE, PED.CD_CLIENTE, PED.CD_PEDIDO, count(PED.CD_PEDIDO) NPEDIDOS FROM PEDIDO PED LEFT OUTER JOIN CLIENTE CLI ON (CLI.CD_CLIENTE = PED.CD_CLIENTE ) GROUP BY 1,2,3 agradeço aos amigos que colaborarem preciso dos 2 tipos de retorno os que não possuem e os que possuem qual a quantidade? [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] Dúvida com StringGrid
Ok, funcionou Muito obrigado Fabrício e os demais []'s Em 14 de julho de 2010 14:16, Fabricio Colombo fabricio.colombo@gmail.com escreveu: crie um método conforme abaixo, e associe ao stringgrid dinamicamente procedure TForm1.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;Rect: TRect; State: TGridDrawState); begin with TStringGrid(Sender) do begin if (ACol FixedCols-1) and (ARow FixedRows-1) then begin if Odd(ARow) then Canvas.Brush.Color := clYellow else Canvas.Brush.Color := clWhite; Canvas.FillRect(Rect); end; end; end; var vStringGrid: TStringGrid; begin vStringGrid := TStringGrid.Create(Self); vStringGrid.Parent := Self; vStringGrid.OnDrawCell := StringGridDrawCell; Em 14 de julho de 2010 10:06, Domingos domingosp...@gmail.com escreveu: É verdade, havia me esquecido de Parent da classe TComponent, né? Funcionou tudo bem, agora aproveitar a deixa, vocês sabem uma maneira eficiente de zebrar os Grids criados em tempo de execução? Em 13 de julho de 2010 22:21, Fabricio Colombo fabricio.colombo@gmail.com fabricio.colombo.mva%40gmail.com escreveu: Vc tem que definir o Parent do TStringGrid criado. Em 13 de julho de 2010 10:32, Domingos domingosp...@gmail.com domingospawn%40gmail.com escreveu: Olá, bom dia a todos Estou com a seguinte dúvida, preciso criar dinamicamente StringGrids em um form, eu consigo criar um Array de StringGrids e setando o tamanho executar o Create da classe TStringGrid, porém eles não são exibidos no form, alguém pode me ajudar? Eu utilizo Delphi 6 Obrigado -- Att, Domingos J. M. de Souza GTalk / MSN: domingosp...@gmail.com domingospawn%40gmail.com domingospawn% 40gmail.com Skype: domingospawn Imagination is more important than knowledge. - Albert Einstein [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 -- Att, Domingos J. M. de Souza GTalk / MSN: domingosp...@gmail.com domingospawn%40gmail.com Skype: domingospawn Imagination is more important than knowledge. - Albert Einstein [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 -- Att, Domingos J. M. de Souza GTalk / MSN: domingosp...@gmail.com Skype: domingospawn Imagination is more important than knowledge. - Albert Einstein [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [delphi-br] MethodAddress retornando NIL
Alosi, Desta forma eu também já tinha encontrado na internet e na documentação. Veja que se você usar sua rotina como exemplifiquei anteriormente, não funcionará: ExecMethod( edit1, 'SETFOCUS' ) --- Em delphi-br@yahoogrupos.com.br, jalosii jalo...@... escreveu Implementei sem problemas na semana passada em um sistema meu. Qual o real problema que vc está tendo? Sua procedure seria assim: unit Unit2; interface uses ...; type TForm2 = class(TForm) ... private procedure ExecMethod(NoObjecto: TObject; Nome_Metodo: String); ... var Form2: TForm2; type //tem que ser aqui, não sei explicar por que, mas se por acima do form no mesmo type causa erro TExec = procedure of object; ... procedure TForm2.ExecMethod(NoObjecto: TObject; Nome_Metodo: String); var Rotina: TMethod; Exec: TExec; begin Rotina.Data := Pointer(NoObjeto); Rotina.Code := NoObjeto.MethodAddress(Nome_Metodo);//Aqui que causa erro pra vc? if not Assigned(Rotina.Code) then exit; Exec := TExec(Rotina); Exec; end; ... O que eu percebi é se o método que vc quer chamar nã estiver nas declarações do FORM no lugar certo, o MethodAddress não encontra, tentei por em private e não achou, troquei o local da declaração pra acima do private e funcionou, no meu caso chamo uma procedure de outro form, pra que nesse não tenha acesso a banco de dados e está funcionando. Verifique teu código e se tiver mais erros nos avise pra ver se pudemos lhe ajudar. Alosi DigitalSystem Bento Gonçalves-RS
RES: RES: [delphi-br] MethodAddress retornando NIL
Eric, se você pensa em implementar algum tipo de automação em seus aplicativos, envolvendo a manipulação de elementos nele contidos, sugiro você pesquisar sobre ferramentas de scripting para Delphi. Uma boa alternativa, free e de código fonte aberto, é o PascalScript, da RemObjects (http://www.remobjects.com/ps). Caso não seja essa a sua necessidade, explique-a melhor, com riqueza de detalhes, para que possamos discutir uma alternativa técnica para tal. Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de eric_developer Enviada em: quinta-feira, 15 de julho de 2010 12:07 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] MethodAddress retornando NIL Alosi, Desta forma eu também já tinha encontrado na internet e na documentação. Veja que se você usar sua rotina como exemplifiquei anteriormente, não funcionará: ExecMethod( edit1, 'SETFOCUS' ) --- Em delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br , jalosii jalo...@... escreveu Implementei sem problemas na semana passada em um sistema meu. Qual o real problema que vc está tendo? Sua procedure seria assim: unit Unit2; interface uses ...; type TForm2 = class(TForm) ... private procedure ExecMethod(NoObjecto: TObject; Nome_Metodo: String); ... var Form2: TForm2; type //tem que ser aqui, não sei explicar por que, mas se por acima do form no mesmo type causa erro TExec = procedure of object; ... procedure TForm2.ExecMethod(NoObjecto: TObject; Nome_Metodo: String); var Rotina: TMethod; Exec: TExec; begin Rotina.Data := Pointer(NoObjeto); Rotina.Code := NoObjeto.MethodAddress(Nome_Metodo);//Aqui que causa erro pra vc? if not Assigned(Rotina.Code) then exit; Exec := TExec(Rotina); Exec; end; ... O que eu percebi é se o método que vc quer chamar nã estiver nas declarações do FORM no lugar certo, o MethodAddress não encontra, tentei por em private e não achou, troquei o local da declaração pra acima do private e funcionou, no meu caso chamo uma procedure de outro form, pra que nesse não tenha acesso a banco de dados e está funcionando. Verifique teu código e se tiver mais erros nos avise pra ver se pudemos lhe ajudar. Alosi DigitalSystem Bento Gonçalves-RS [As partes desta mensagem que não continham texto foram removidas]
Re: Res: [delphi-br] Desempenho Firebird
Desculpe a pergunta um tanto pessoal, mas onde vc está nesse interiorzão de SP, Eny? Eu até pensei em insistir na carreira de DBA, mas sempre pinta aquela insegurança... Eu gosto muito de BD mas gosto bastante de desenvolvimento tb... Atte, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em qui, 15/7/10, Eny Urias enyur...@yahoo.com.br escreveu: De: Eny Urias enyur...@yahoo.com.br Assunto: Res: [delphi-br] Desempenho Firebird Para: delphi-br@yahoogrupos.com.br Data: Quinta-feira, 15 de Julho de 2010, 10:07 Taí... gostei! Realmente acho que o ideal é fazer parcerias com quem realmente entende da coisa... Mas, vai falar isso pro dono da empresa! Acho que o que aconteceu com meu amigo foi exatamente isso... Uma pessoa que não está mais na empresa colocou o sistema pra rodar com o FB... aí ele foi embora porque teve uma proposta melhor e sobrou pro cara do suporte dar manutenção no banco que, depois que a coisa ficou grande, não soube mais o que fazer... Mas essa profissão de DBA ainda é escassa aqui no interior... Acho rara a empresa que tem um cara pra cuidar do banco... Seria legal ter um parceiro para passar como deve ser configurado o banco, independente de qual seja. Agradeços a todos pelos esclarecimentos! -- 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, 15 de Julho de 2010 8:55:03 Assunto: Re: [delphi-br] Desempenho Firebird O que denegre o banco, ao meu ver, é que se ele exige ou pelo menos requeira um DBA para fazer o trabalho de ajuste e tunnagem do mesmo, aí vem muitas vezes o próprio desenvolvedor na base da fuçação mesmo pra tentar configurar. Acaba até configurando corretamente, mas depois de muito penar e gerar desgastes com o cliente. Muitos lugares, o desenvolvedor vai para uma filial, chega lá não tem nada estruturado para ele trabalhar e lá vai o cara atrasar seu cronograma e partir pro heroismo pra resolver problemas que não deveriam existir lá. A questão que vejo, é que muitas empresas e muitos cartolas nao entendem que no universo do desenvolvimento, cada macaco no seu galho. Banco de dados é com DBA, desenvolvimento é com o programador e levantamento de requisitos/mapeamento de processos é com o analista. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com SKYPE: WalterChagasJr - Original Message - From: Ricardo César Cardoso To: delphi-br@yahoogrupos.com.br Sent: Wednesday, July 14, 2010 10:26 PM Subject: Re: [delphi-br] Desempenho Firebird Desconfio desse tipo de chute. Já vi gente dizendo Firebird em sistemas de missão critica (acho que um deles é o Bruno Lichot). Não posso dizer muito pois não tenho nenhum sistema de missão critica, mas posso dizer que no quesito VOLUME DE DADOS o FB aguenta o tranco. Um camarada aqui tem um sistema que já acumulou 40 GB de dados dos mais diversos na base e roda que é uma belezinha .Tem foto, áudio, vídeo e até planilhas e arquivos PDFs gravados no BD juntos com os campos de dados. Todo BD que trabalha em missão crítica (eu até diria que até mesmo o hardware) precisa de um tuning ou de refinamentos para melhorar a performance. A diferença é que no FB esse tipo de ajuste tem que ser feito pelo DBA no braço. Ou seja, não há wizards que fazem todo o trabalho pesado. Vc tem que conhecer os conceitos para saber exatamente o que está fazendo. Outros fatores são o processador em uso e a versão do BD que está usando (SuperClassic, ClassicServer, SuperServer) que pode oferecer mais refinamentos. Só por desencargo de consciência, indica pro teu amigo ler isso aqui (http://www.sinatica.com/blog/br/index.php/artigos/firebird-superserver-classicserver-ou-superclassic) e acompanhar a Lista Firebase BR. Um BD que tenho vontade (só vontade, pois tempo eu não tenho mesmo...) de testar é o PostGree é gratuito e aguenta o tranco como os majors, pelo menos é o que dizem. Uma última dúvida: que BD entrou no lugar do FB? Tanto o Oracle XE quando o SQL Server Express tem limitações quanto ao tamanho máximo que o arquivo do BD pode assumir (acho que 4Gb em ambos) e no Oracle ainda há a limitação de núcleos de processador (só usa 1 núcleo). Atte, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o
Re: RES: RES: [delphi-br] MethodAddress retornando NIL
Colega, não é executar Scripts, por favor veja o que ja postamos. o pequeno e completo exemplo que foi postado, esta bem claro e fácil, é uma pena que há restrições e não consegui montar nada equivalente. O que faço facilmente em outra linguagem estruturada com poucos recursos OOP, parece ser mosca branca de zóio verde ou extravagante demais em Delphi rsrs. Só me resta aguardar, tentar outros caminhos ou desistir disso, o que acho tão simples, é um mistérios aos demais. Fiz uma pesquisa aqui, achei um colega querendo o mesmo (tópico de uns 2 anos), entrei em contato com ele e até hoje não conseguiu. --- Em delphi-br@yahoogrupos.com.br, Rubem Rocha rubem.ro...@... escreveu Eric, se você pensa em implementar algum tipo de automação em seus aplicativos, envolvendo a manipulação de elementos nele contidos, sugiro você pesquisar sobre ferramentas de scripting para Delphi. Uma boa alternativa, free e de código fonte aberto, é o PascalScript, da RemObjects (http://www.remobjects.com/ps). Caso não seja essa a sua necessidade, explique-a melhor, com riqueza de detalhes, para que possamos discutir uma alternativa técnica para tal. Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de eric_developer Enviada em: quinta-feira, 15 de julho de 2010 12:07 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] MethodAddress retornando NIL Alosi, Desta forma eu também já tinha encontrado na internet e na documentação. Veja que se você usar sua rotina como exemplifiquei anteriormente, não funcionará: ExecMethod( edit1, 'SETFOCUS' ) --- Em delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br , jalosii jalosii@ escreveu Implementei sem problemas na semana passada em um sistema meu. Qual o real problema que vc está tendo? Sua procedure seria assim: unit Unit2; interface uses ...; type TForm2 = class(TForm) ... private procedure ExecMethod(NoObjecto: TObject; Nome_Metodo: String); ... var Form2: TForm2; type //tem que ser aqui, não sei explicar por que, mas se por acima do form no mesmo type causa erro TExec = procedure of object; ... procedure TForm2.ExecMethod(NoObjecto: TObject; Nome_Metodo: String); var Rotina: TMethod; Exec: TExec; begin Rotina.Data := Pointer(NoObjeto); Rotina.Code := NoObjeto.MethodAddress(Nome_Metodo);//Aqui que causa erro pra vc? if not Assigned(Rotina.Code) then exit; Exec := TExec(Rotina); Exec; end; ... O que eu percebi é se o método que vc quer chamar nã estiver nas declarações do FORM no lugar certo, o MethodAddress não encontra, tentei por em private e não achou, troquei o local da declaração pra acima do private e funcionou, no meu caso chamo uma procedure de outro form, pra que nesse não tenha acesso a banco de dados e está funcionando. Verifique teu código e se tiver mais erros nos avise pra ver se pudemos lhe ajudar. Alosi DigitalSystem Bento Gonçalves-RS [As partes desta mensagem que não continham texto foram removidas]
RES: RES: RES: [delphi-br] MethodAddress retornando NIL
Se você quer usar algo parecido com macro-substituição, o Delphi não dá suporte para isso, porquê simplesmente isso não é previsto na sua arquitetura. Em linguagens interpretadas, como o PHP, ou pseudo-interpretadas, como o (ainda vivo) Clipper, isso é possível (ou seja, pode ser mamão com açúcar, pois a arquitetura dessas linguagens assim o permite. Eu entendi o seu objetivo, por isso mesmo que sugeri uma ferramenta para scripting, por ser mais fácil nessa abordagem fazer tais chamadas dinâmicas, visto que um script pode ter código que pode ser criado e atribuído aos eventos de um objeto em tempo de execução e, ainda, poder ser chamado facilmente pelo seu nome. Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de eric_developer Enviada em: quinta-feira, 15 de julho de 2010 13:22 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: RES: [delphi-br] MethodAddress retornando NIL Colega, não é executar Scripts, por favor veja o que ja postamos. o pequeno e completo exemplo que foi postado, esta bem claro e fácil, é uma pena que há restrições e não consegui montar nada equivalente. O que faço facilmente em outra linguagem estruturada com poucos recursos OOP, parece ser mosca branca de zóio verde ou extravagante demais em Delphi rsrs. Só me resta aguardar, tentar outros caminhos ou desistir disso, o que acho tão simples, é um mistérios aos demais. Fiz uma pesquisa aqui, achei um colega querendo o mesmo (tópico de uns 2 anos), entrei em contato com ele e até hoje não conseguiu. --- Em delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br , Rubem Rocha rubem.ro...@... escreveu Eric, se você pensa em implementar algum tipo de automação em seus aplicativos, envolvendo a manipulação de elementos nele contidos, sugiro você pesquisar sobre ferramentas de scripting para Delphi. Uma boa alternativa, free e de código fonte aberto, é o PascalScript, da RemObjects (http://www.remobjects.com/ps). Caso não seja essa a sua necessidade, explique-a melhor, com riqueza de detalhes, para que possamos discutir uma alternativa técnica para tal. Sds. 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 eric_developer Enviada em: quinta-feira, 15 de julho de 2010 12:07 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: Re: RES: [delphi-br] MethodAddress retornando NIL Alosi, Desta forma eu também já tinha encontrado na internet e na documentação. Veja que se você usar sua rotina como exemplifiquei anteriormente, não funcionará: ExecMethod( edit1, 'SETFOCUS' ) --- Em delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br , jalosii jalosii@ escreveu Implementei sem problemas na semana passada em um sistema meu. Qual o real problema que vc está tendo? Sua procedure seria assim: unit Unit2; interface uses ...; type TForm2 = class(TForm) ... private procedure ExecMethod(NoObjecto: TObject; Nome_Metodo: String); ... var Form2: TForm2; type //tem que ser aqui, não sei explicar por que, mas se por acima do form no mesmo type causa erro TExec = procedure of object; ... procedure TForm2.ExecMethod(NoObjecto: TObject; Nome_Metodo: String); var Rotina: TMethod; Exec: TExec; begin Rotina.Data := Pointer(NoObjeto); Rotina.Code := NoObjeto.MethodAddress(Nome_Metodo);//Aqui que causa erro pra vc? if not Assigned(Rotina.Code) then exit; Exec := TExec(Rotina); Exec; end; ... O que eu percebi é se o método que vc quer chamar nã estiver nas declarações do FORM no lugar certo, o MethodAddress não encontra, tentei por em private e não achou, troquei o local da declaração pra acima do private e funcionou, no meu caso chamo uma procedure de outro form, pra que nesse não tenha acesso a banco de dados e está funcionando. Verifique teu código e se tiver mais erros nos avise pra ver se pudemos lhe ajudar. Alosi DigitalSystem Bento Gonçalves-RS [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] [JOB] Procuro estagiario em recife
estagio em delphi aqui na empresa que fica em recife - pernambuco. quem tiver disponivel por favor mande seu curriculo para rafajo...@gmail.com nao esquecer de informar os horarios disponiveis t+ -- _ Rafael jorge alves Desenvolvedor/analista Ativa Soluções em TI. Recife - PE [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: RES: [delphi-br] MethodAddress retornando NIL
Errado Rubem, quando me referi que faço (não é comum outros usarem OOP no nível que utilizo) em outra linguagem, não é via macro-substituição, e conforme o caso isso é um péssimo hábito, mas tudo isso não importa. Ficar nas teorias disso ou aquilo não vamos sair do lugar. Delphi é uma linguagem que usa muito OOP, o que quero é uma pequena manipulação que já esta no objeto, não considero nada de radical para a linguagem fazer, veja que eu estaria passando o objeto o que não tornaria o processo as cegas, não é caso para scripts. Enfim, vamos deixar isso pendente, pois mais de 2000 maneiras de não conseguir fazer é facil, o objetivo é uma que ajude a resolver. Grato, Eric --- Em delphi-br@yahoogrupos.com.br, Rubem Rocha rubem.ro...@... escreveu Se você quer usar algo parecido com macro-substituição, o Delphi não dá suporte para isso, porquê simplesmente isso não é previsto na sua arquitetura. Em linguagens interpretadas, como o PHP, ou pseudo-interpretadas, como o (ainda vivo) Clipper, isso é possível (ou seja, pode ser `mamão com açúcar', pois a arquitetura dessas linguagens assim o permite. Eu entendi o seu objetivo, por isso mesmo que sugeri uma ferramenta para scripting, por ser mais fácil nessa abordagem fazer tais chamadas dinâmicas, visto que um script pode ter código que pode ser criado e atribuído aos eventos de um objeto em tempo de execução e, ainda, poder ser chamado facilmente pelo seu nome. Sds.
Re: RES: [delphi-br] Procurar Nome da tabela dentro da query
Obrigado, achei que alguém podesse ter um parser para fazer isto. From: Rubem Rocha rubem.ro...@dtmanaus.com.br To: delphi-br@yahoogrupos.com.br Sent: Thu, July 15, 2010 11:52:45 AM Subject: RES: [delphi-br] Procurar Nome da tabela dentro da query Não tem algoritmo ou fórmula mirabolante pra esse caso. Usando a função Pos(), peque a posição da palavra ‘FROM’ e a posição da próxima cláusula seguinte ao FROM (que pode ser WHERE, GROUP BY, HAVING, ORDER BY ou qualquer uma outra, dependendo do banco de dados que estejas usando). Recorte a string dentro desse faixa de posições e analise para obter o(s) nome(s) da(s) tabela(s) desejada(s). Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Evaldo Enviada em: quinta-feira, 15 de julho de 2010 10:41 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Procurar Nome da tabela dentro da query Alguém tem algum algoritimo para capturar o nome da tabela a que se refere uma query? por exemplo um objeto TsqlQuery com a instrução: ' select nome,telefone from CLIENTE where idcliente = :cliente '; o algoritimo iria retornar 'CLIENTE'. [As partes desta mensagem que não continham texto foram removidas]
RES: RES: [delphi-br] Procurar Nome da tabela dentro da query
Pode ser que existam parsers mas, como podes constatar que isso é bem simples, nada impede que você possa construir o seu próprio parser. Boa sorte. Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Evaldo Enviada em: quinta-feira, 15 de julho de 2010 14:25 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Procurar Nome da tabela dentro da query Obrigado, achei que alguém podesse ter um parser para fazer isto. From: Rubem Rocha rubem.ro...@dtmanaus.com.br mailto:rubem.rocha%40dtmanaus.com.br To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Sent: Thu, July 15, 2010 11:52:45 AM Subject: RES: [delphi-br] Procurar Nome da tabela dentro da query Não tem algoritmo ou fórmula mirabolante pra esse caso. Usando a função Pos(), peque a posição da palavra ‘FROM’ e a posição da próxima cláusula seguinte ao FROM (que pode ser WHERE, GROUP BY, HAVING, ORDER BY ou qualquer uma outra, dependendo do banco de dados que estejas usando). Recorte a string dentro desse faixa de posições e analise para obter o(s) nome(s) da(s) tabela(s) desejada(s). Sds. 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 Evaldo Enviada em: quinta-feira, 15 de julho de 2010 10:41 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: [delphi-br] Procurar Nome da tabela dentro da query Alguém tem algum algoritimo para capturar o nome da tabela a que se refere uma query? por exemplo um objeto TsqlQuery com a instrução: ' select nome,telefone from CLIENTE where idcliente = :cliente '; o algoritimo iria retornar 'CLIENTE'. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Abrir aquivo txt no notepad
Mas é possível trocar a fonte de exibição, Formatar Fonte... (abre o diálogo padrão do Windows) Seria isso? Atte, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em qui, 15/7/10, Walter Chagas (Bol) wchag...@bol.com.br escreveu: De: Walter Chagas (Bol) wchag...@bol.com.br Assunto: Re: [delphi-br] Abrir aquivo txt no notepad Para: delphi-br@yahoogrupos.com.br Data: Quinta-feira, 15 de Julho de 2010, 11:25 Não. O Notepad exibe text puro sem formatação alguma. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com SKYPE: WalterChagasJr - Original Message - From: Alisson To: delphi-br@yahoogrupos.com.br Sent: Thursday, July 15, 2010 11:03 AM Subject: [delphi-br] Abrir aquivo txt no notepad É possível abrir um arquivo txt no notepad com uma fonte pré-definida? Eu gostaria de usar a fonte Courier, pois se cada letra ocupar um tamanho diferente o texto fica todo desconfigurado. [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] Procurar Nome da tabela dentro da query
Tem o método GetTableNameFromSQL da unit DBCommon. Mais tem casos especificos que não funciona. Por exemplo, esse sql abaixo funcionar perfeitamente select * from tabela1 a left outer join tabela2 on a.id = b.id Agora se vc utilizar subqueries no select como o exemplo abaixo, ai não funciona, pois ele vai pensar que a tabela principal é a tabela3. select a.*, (select c.id from tabela3 c where a.id = c.id) from tabela1 a left outer join tabela2 on a.id = b.id Em 15 de julho de 2010 11:52, Rubem Rocha rubem.ro...@dtmanaus.com.brescreveu: Não tem algoritmo ou fórmula mirabolante pra esse caso. Usando a função Pos(), peque a posição da palavra FROM e a posição da próxima cláusula seguinte ao FROM (que pode ser WHERE, GROUP BY, HAVING, ORDER BY ou qualquer uma outra, dependendo do banco de dados que estejas usando). Recorte a string dentro desse faixa de posições e analise para obter o(s) nome(s) da(s) tabela(s) desejada(s). Sds. 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 Evaldo Enviada em: quinta-feira, 15 de julho de 2010 10:41 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: [delphi-br] Procurar Nome da tabela dentro da query Alguém tem algum algoritimo para capturar o nome da tabela a que se refere uma query? por exemplo um objeto TsqlQuery com a instrução: ' select nome,telefone from CLIENTE where idcliente = :cliente '; o algoritimo iria retornar 'CLIENTE'. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
RES: RES: RES: RES: [delphi-br] MethodAddress retornando NIL
Eric, Note que a função SetFocus do TWinControl é PUBLIC e não PUBLISHED. Por isso o METHODADDRESS não vai achar o método na chamada ExecMethod( edit1, 'SETFOCUS' ) []´s Sergio Uetanabaro De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de eric_developer Enviada em: quinta-feira, 15 de julho de 2010 15:15 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: RES: RES: [delphi-br] MethodAddress retornando NIL Errado Rubem, quando me referi que faço (não é comum outros usarem OOP no nível que utilizo) em outra linguagem, não é via macro-substituição, e conforme o caso isso é um péssimo hábito, mas tudo isso não importa. Ficar nas teorias disso ou aquilo não vamos sair do lugar. Delphi é uma linguagem que usa muito OOP, o que quero é uma pequena manipulação que já esta no objeto, não considero nada de radical para a linguagem fazer, veja que eu estaria passando o objeto o que não tornaria o processo as cegas, não é caso para scripts. Enfim, vamos deixar isso pendente, pois mais de 2000 maneiras de não conseguir fazer é facil, o objetivo é uma que ajude a resolver. Grato, Eric --- Em delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br , Rubem Rocha rubem.ro...@... escreveu Se você quer usar algo parecido com macro-substituição, o Delphi não dá suporte para isso, porquê simplesmente isso não é previsto na sua arquitetura. Em linguagens interpretadas, como o PHP, ou pseudo-interpretadas, como o (ainda vivo) Clipper, isso é possível (ou seja, pode ser `mamão com açúcar', pois a arquitetura dessas linguagens assim o permite. Eu entendi o seu objetivo, por isso mesmo que sugeri uma ferramenta para scripting, por ser mais fácil nessa abordagem fazer tais chamadas dinâmicas, visto que um script pode ter código que pode ser criado e atribuído aos eventos de um objeto em tempo de execução e, ainda, poder ser chamado facilmente pelo seu nome. Sds. [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: [delphi-br] MethodAddress retornando NIL
Mais até agora vc não disse qual o problema que vc quer resolver. Qual a sua necessidade? Por que vc precisa que os métodos sejam executados pelo nome? Em 15 de julho de 2010 14:22, eric_developer developer.syst...@yahoo.comescreveu: Colega, não é executar Scripts, por favor veja o que ja postamos. o pequeno e completo exemplo que foi postado, esta bem claro e fácil, é uma pena que há restrições e não consegui montar nada equivalente. O que faço facilmente em outra linguagem estruturada com poucos recursos OOP, parece ser mosca branca de zóio verde ou extravagante demais em Delphi rsrs. Só me resta aguardar, tentar outros caminhos ou desistir disso, o que acho tão simples, é um mistérios aos demais. Fiz uma pesquisa aqui, achei um colega querendo o mesmo (tópico de uns 2 anos), entrei em contato com ele e até hoje não conseguiu. --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br, Rubem Rocha rubem.ro...@... escreveu Eric, se você pensa em implementar algum tipo de automação em seus aplicativos, envolvendo a manipulação de elementos nele contidos, sugiro você pesquisar sobre ferramentas de scripting para Delphi. Uma boa alternativa, free e de código fonte aberto, é o PascalScript, da RemObjects (http://www.remobjects.com/ps). Caso não seja essa a sua necessidade, explique-a melhor, com riqueza de detalhes, para que possamos discutir uma alternativa técnica para tal. Sds. 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 eric_developer Enviada em: quinta-feira, 15 de julho de 2010 12:07 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: Re: RES: [delphi-br] MethodAddress retornando NIL Alosi, Desta forma eu também já tinha encontrado na internet e na documentação. Veja que se você usar sua rotina como exemplifiquei anteriormente, não funcionará: ExecMethod( edit1, 'SETFOCUS' ) --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brmailto: delphi-br%40yahoogrupos.com.br delphi-br%2540yahoogrupos.com.br , jalosii jalosii@ escreveu Implementei sem problemas na semana passada em um sistema meu. Qual o real problema que vc está tendo? Sua procedure seria assim: unit Unit2; interface uses ...; type TForm2 = class(TForm) ... private procedure ExecMethod(NoObjecto: TObject; Nome_Metodo: String); ... var Form2: TForm2; type //tem que ser aqui, não sei explicar por que, mas se por acima do form no mesmo type causa erro TExec = procedure of object; ... procedure TForm2.ExecMethod(NoObjecto: TObject; Nome_Metodo: String); var Rotina: TMethod; Exec: TExec; begin Rotina.Data := Pointer(NoObjeto); Rotina.Code := NoObjeto.MethodAddress(Nome_Metodo);//Aqui que causa erro pra vc? if not Assigned(Rotina.Code) then exit; Exec := TExec(Rotina); Exec; end; ... O que eu percebi é se o método que vc quer chamar nã estiver nas declarações do FORM no lugar certo, o MethodAddress não encontra, tentei por em private e não achou, troquei o local da declaração pra acima do private e funcionou, no meu caso chamo uma procedure de outro form, pra que nesse não tenha acesso a banco de dados e está funcionando. Verifique teu código e se tiver mais erros nos avise pra ver se pudemos lhe ajudar. Alosi DigitalSystem Bento Gonçalves-RS [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] Procurar Nome da tabela dentro da query
Evaldo, Caso a consulta for baseada somente em uma tabela ou em outra query, basta voce procurar pela palavra from (com espaços antes e depois) e a palavra seguinte é o nome do objeto de onde os dados são obtidos. Em pseudo-código= 1.identificar posição de from na query; 2.identificar o primeiro espaço após from (é o espaço após o nome); e 3.capturar substring que vai da posição de from até a posição do espaço subsequente. Você pode criar uma function baseada neste principio, e voce terá uma funcionalidade universal. Boa sorte, abraço, Roberto Camargo --- On Thu, 7/15/10, Evaldo evaldoave...@yahoo.com.br wrote: From: Evaldo evaldoave...@yahoo.com.br Subject: [delphi-br] Procurar Nome da tabela dentro da query To: delphi-br@yahoogrupos.com.br Date: Thursday, July 15, 2010, 6:41 PM Alguém tem algum algoritimo para capturar o nome da tabela a que se refere uma query? por exemplo um objeto TsqlQuery com a instrução: ' select nome,telefone from CLIENTE where idcliente = :cliente '; o algoritimo iria retornar 'CLIENTE'. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
RES: RES: [delphi-br] MethodAddress retornando NIL
Se você não define um local apropriado para o método ou propriedade, ele será por default declarado como published, em se tratando de componentes. Por isso que o MethodAddress funcionou! No caso de classes normais, sem serem descendentes de TPersistent ou TComponent, a declaração default é como public. Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de jalosii Enviada em: quinta-feira, 15 de julho de 2010 08:02 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] MethodAddress retornando NIL Implementei sem problemas na semana passada em um sistema meu. Qual o real problema que vc está tendo? Sua procedure seria assim: unit Unit2; interface uses ...; type TForm2 = class(TForm) ... private procedure ExecMethod(NoObjecto: TObject; Nome_Metodo: String); ... var Form2: TForm2; type //tem que ser aqui, não sei explicar por que, mas se por acima do form no mesmo type causa erro TExec = procedure of object; ... procedure TForm2.ExecMethod(NoObjecto: TObject; Nome_Metodo: String); var Rotina: TMethod; Exec: TExec; begin Rotina.Data := Pointer(NoObjeto); Rotina.Code := NoObjeto.MethodAddress(Nome_Metodo);//Aqui que causa erro pra vc? if not Assigned(Rotina.Code) then exit; Exec := TExec(Rotina); Exec; end; ... O que eu percebi é se o método que vc quer chamar nã estiver nas declarações do FORM no lugar certo, o MethodAddress não encontra, tentei por em private e não achou, troquei o local da declaração pra acima do private e funcionou, no meu caso chamo uma procedure de outro form, pra que nesse não tenha acesso a banco de dados e está funcionando. Verifique teu código e se tiver mais erros nos avise pra ver se pudemos lhe ajudar. Alosi DigitalSystem Bento Gonçalves-RS eric_developer escreveu: isso é muito diferente do que preciso, mesmo assim obrigado. --- Em delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br , Fabricio Colombo fabricio.colombo@... escreveu Para o método SetFocus, seria melhor vc chamar direto o método. Por exemplo, se vc estiver em um form, bastaria chamar Self.FocusControl(edit1) ou vc cria um método seu procedure TForm1.SetFocusComponent(AComponent: TComponent); begin if AComponent is TWinControl then TWinControl(AComponent).SetFocus; end; Que outros métodos vc precisa invocar? Praticamente todos os métodos comuns entre os componentes visuais, estão presentes em TControl e TWinControl, que são as classes base. Em 14 de julho de 2010 20:49, eric_developer developer.syst...@...escreveu: executar métodos, irei passar para minha função, o objeto e a string com o nome do método, exemplo: myCallMethod( edit1, 'SETFOCUS' ) ; --- Em delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br delphi-br%40yahoogrupos.com.br, Fabricio Colombo fabricio.colombo.mva@ escreveu O que vc está pretendendo fazer Eric? Em 14 de julho de 2010 16:02, Mário Guedes jmarioguedes@escreveu: Eu fiz assim: http://eugostododelphi.blogspot.com/2010/04/como-executar-um-metodo-pelo-nom e.html *José Mário Silva Guedes* e-mail: jmarioguedes@ jmarioguedes%40gmail.com [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] Abrir aquivo txt no notepad
No meu notepad tem a opção Formatar\Fonte. Não sei como solucionar seu problema, mais opção de alterar a fonte tem sim. Em 15 de julho de 2010 11:25, Walter Chagas (Bol) wchag...@bol.com.brescreveu: Não. O Notepad exibe text puro sem formatação alguma. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br wchagasj%40bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com whitesockets%40hotmail.com SKYPE: WalterChagasJr - Original Message - From: Alisson To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Sent: Thursday, July 15, 2010 11:03 AM Subject: [delphi-br] Abrir aquivo txt no notepad É possível abrir um arquivo txt no notepad com uma fonte pré-definida? Eu gostaria de usar a fonte Courier, pois se cada letra ocupar um tamanho diferente o texto fica todo desconfigurado. [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 * 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: RES: RES: [delphi-br] Procurar Nome da tabela dentro da query
Simples, não acredito que seja por que pode haver algumas querys com muitos joins e querys sem a clausula where Obrigado. From: Rubem Rocha rubem.ro...@dtmanaus.com.br To: delphi-br@yahoogrupos.com.br Sent: Thu, July 15, 2010 3:29:19 PM Subject: RES: RES: [delphi-br] Procurar Nome da tabela dentro da query Pode ser que existam parsers mas, como podes constatar que isso é bem simples, nada impede que você possa construir o seu próprio parser. Boa sorte. Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Evaldo Enviada em: quinta-feira, 15 de julho de 2010 14:25 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Procurar Nome da tabela dentro da query Obrigado, achei que alguém podesse ter um parser para fazer isto. From: Rubem Rocha rubem.ro...@dtmanaus.com.br mailto:rubem.rocha%40dtmanaus.com.br To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Sent: Thu, July 15, 2010 11:52:45 AM Subject: RES: [delphi-br] Procurar Nome da tabela dentro da query Não tem algoritmo ou fórmula mirabolante pra esse caso. Usando a função Pos(), peque a posição da palavra ‘FROM’ e a posição da próxima cláusula seguinte ao FROM (que pode ser WHERE, GROUP BY, HAVING, ORDER BY ou qualquer uma outra, dependendo do banco de dados que estejas usando). Recorte a string dentro desse faixa de posições e analise para obter o(s) nome(s) da(s) tabela(s) desejada(s). Sds. 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 Evaldo Enviada em: quinta-feira, 15 de julho de 2010 10:41 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: [delphi-br] Procurar Nome da tabela dentro da query Alguém tem algum algoritimo para capturar o nome da tabela a que se refere uma query? por exemplo um objeto TsqlQuery com a instrução: ' select nome,telefone from CLIENTE where idcliente = :cliente '; o algoritimo iria retornar 'CLIENTE'. [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: RES: RES: [delphi-br] MethodAddress retornando NIL
Sergio, isso já sabemos, passei um exemplo prático que obviamente não funciona e para que possam entender e alguem me sugerir uma alternativa que funcione para o que eu quero, entendeu ?? --- Em delphi-br@yahoogrupos.com.br, Sérgio T. Uetanabaro s...@... escreveu Eric, Note que a função SetFocus do TWinControl é PUBLIC e não PUBLISHED. Por isso o METHODADDRESS não vai achar o método na chamada ExecMethod( edit1, 'SETFOCUS' ) []´s Sergio Uetanabaro
Re: [delphi-br] Abrir aquivo txt no notepad
altera a fonte do programa e não do texto em si []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com SKYPE: WalterChagasJr - Original Message - From: Fabricio Colombo fabricio.colombo@gmail.com To: delphi-br@yahoogrupos.com.br Sent: Thursday, July 15, 2010 1:57 PM Subject: Re: [delphi-br] Abrir aquivo txt no notepad No meu notepad tem a opção Formatar\Fonte. Não sei como solucionar seu problema, mais opção de alterar a fonte tem sim. Em 15 de julho de 2010 11:25, Walter Chagas (Bol) wchag...@bol.com.brescreveu: Não. O Notepad exibe text puro sem formatação alguma. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br wchagasj%40bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com whitesockets%40hotmail.com SKYPE: WalterChagasJr - Original Message - From: Alisson To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Sent: Thursday, July 15, 2010 11:03 AM Subject: [delphi-br] Abrir aquivo txt no notepad É possível abrir um arquivo txt no notepad com uma fonte pré-definida? Eu gostaria de usar a fonte Courier, pois se cada letra ocupar um tamanho diferente o texto fica todo desconfigurado. [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 -- 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: RES: RES: RES: [delphi-br] MethodAddress retornando NIL
Olá Eric, Copiei abaixo, duas de suas mensagens: 2010/7/15 eric_developer developer.syst...@yahoo.com: Colega, não é executar Scripts, por favor veja o que ja postamos. o pequeno e completo exemplo que foi postado, esta bem claro e fácil, é uma pena que há restrições e não consegui montar nada equivalente. O que faço facilmente em outra linguagem estruturada com poucos recursos OOP, parece ser mosca branca de zóio verde ou extravagante demais em Delphi rsrs. Só me resta aguardar, tentar outros caminhos ou desistir disso, o que acho tão simples, é um mistérios aos demais. Fiz uma pesquisa aqui, achei um colega querendo o mesmo (tópico de uns 2 anos), entrei em contato com ele e até hoje não conseguiu. 2010/7/15 eric_developer developer.syst...@yahoo.com: Errado Rubem, quando me referi que faço (não é comum outros usarem OOP no nível que utilizo) em outra linguagem, não é via macro-substituição, e conforme o caso isso é um péssimo hábito, mas tudo isso não importa. Ficar nas teorias disso ou aquilo não vamos sair do lugar. Delphi é uma linguagem que usa muito OOP, o que quero é uma pequena manipulação que já esta no objeto, não considero nada de radical para a linguagem fazer, veja que eu estaria passando o objeto o que não tornaria o processo as cegas, não é caso para scripts. Enfim, vamos deixar isso pendente, pois mais de 2000 maneiras de não conseguir fazer é facil, o objetivo é uma que ajude a resolver. Primeiramente sua resposta: NÃO dá pra fazer. Agora alguns comentários: Não fiquei comparando linguagens, pois cada uma tem seus prós e contras. Então não diga é fácil em outras linguagens. Por exemplo é fácil, em outras linguagens, codificar como no Delphi? Não. Bem, você já entendeu... O Delphi possui uma linguagem FORTEMENTE TIPADA. Esse é um pró da linguagem, em vários problemas... mas também pode ser um contra quando você tenta fazer algoritmos com chamadas abstratas e/ou dinâmicas. A única possibilidade de fazer o que você quer, é utilizando métodos published, que já foi muito comentado por várias pessoas aqui. Não dá pra fazer chamadas a métodos utilizando somente uma string representando seu nome; isso vai contra a filosofia da linguagem, contra a sua base e razão de existir. Você consegue fazer isso em outras linguagens (vc não falou de nenhuma em particular) como, por exemplo, em Java. No entanto, veja que esta prática quebra o encapsulamento (um dos pilares da OOP). O mesmo podemos dizer de Ruby, Python, etc... Sugiro mais ATENÇÃO ao que o Sr. Fabrício falou no email abaixo: 2010/7/14 Fabricio Colombo fabricio.colombo@gmail.com: Para o método SetFocus, seria melhor vc chamar direto o método. Por exemplo, se vc estiver em um form, bastaria chamar Self.FocusControl(edit1) ou vc cria um método seu procedure TForm1.SetFocusComponent(AComponent: TComponent); begin if AComponent is TWinControl then TWinControl(AComponent).SetFocus; end; Que outros métodos vc precisa invocar? Praticamente todos os métodos comuns entre os componentes visuais, estão presentes em TControl e TWinControl, que são as classes base. ...não é o que vc quer (lembre-se que não é possível o que vc quer fazer com Delphi) mas chega muito perto. Em vez de vc tentar fazer chamadas à métodos através de uma string, tente saber qual o tipo de objeto vc está trabalhando (ex: obj is TEdit). Assim vc pode fazer chamadas à métodos comum entre eles, utilizando as classes ancestrais. Cordialmente, MD
RES: RES: RES: RES: RES: [delphi-br] MethodAddress retornando NIL
OK Eric. Eu entendo que a chamada dinâmica é um recurso que podemos utilizar em vários casos mas teremos limitações qto ao tipo de declaração do método o que complica ao ser utilizado nos métodos de componentes padrão do delphi. Se o problema for realizar a chamada proposta então sugiro a vc utilizar essas chamada em componentes derivados para que publiquem (PUBLISHED) os métodos que você quer utilizar. Nesse caso você terá que se atentar em chamar somente métodos com o devido atributo. Outra forma que posso sugerir é o uso de scripters e adaptar as chamadas necessárias para isso. Scripters podem te dar uma grande mão neste ponto pq você não ficará limitado as chamadas de métodos PUBLISHED. No caso de scripter uma chamada seria algo do tipo: Form.RodarScript(edit.SetFocus;); Logicamente tem outros detalhes mas chega bem perto daquilo que você deseja fazer, acredito eu. Somente descarte scripter caso vc precise de permformance na operação. Já busquei várias alternativas para chamadas dinâmicas. Já sofri bastante com esse tipo de problema pq tive que implementar chamadas de métodos pelo nome e esses métodos podiam ter parâmetros. Caso ainda não seja isso, nos explique o problema para que possamos tentar te auxiliar. Sergio Uetanabaro De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de eric_developer Enviada em: quinta-feira, 15 de julho de 2010 16:16 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: RES: RES: RES: [delphi-br] MethodAddress retornando NIL Sergio, isso já sabemos, passei um exemplo prático que obviamente não funciona e para que possam entender e alguem me sugerir uma alternativa que funcione para o que eu quero, entendeu ?? --- Em delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br , Sérgio T. Uetanabaro s...@... escreveu Eric, Note que a função SetFocus do TWinControl é PUBLIC e não PUBLISHED. Por isso o METHODADDRESS não vai achar o método na chamada ExecMethod( edit1, 'SETFOCUS' ) []´s Sergio Uetanabaro [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: RES: [delphi-br] MethodAddress retornando NIL
Marcos, espero que esteja bem errado e dê para fazer o que preciso. Sugiro muito cuidado com certas afirmações NÃO É POSSIVEL ..., mesmo se for um expert, assim você automaticamente cria diversos limites a si mesmo. Teve situações parecidas onde um colega pediu algo e outro muito experiente e talentoso, afirmou o mesmo, e eu postei a solução (código) devidamente testada. Devido a minha experiência, acho mais fácil sempre deduzir que é possível mesmo ao que me seja totalmente alheio. Um colega disse ser possível, mas não informou como rsrs passou uma tonelada de vídeos para download, vou ver se encontro a resposta mágica. Um outro passou o código não posso testar no D2009, porque é para Delphi 2010 rsrs Tedit(sender).setfocus ou semelhante, não é o que desejo, até já criei algo parecido e vou substituir. Grato, Eric Developer Systems --- Em delphi-br@yahoogrupos.com.br, Marcos Douglas m...@... escreveu Olá Eric, Copiei abaixo, duas de suas mensagens: ... Primeiramente sua resposta: NÃO dá pra fazer. O Delphi possui uma linguagem FORTEMENTE TIPADA. Esse é um pró da linguagem, em vários problemas... mas também pode ser um contra quando você tenta fazer algoritmos com chamadas abstratas e/ou dinâmicas. A única possibilidade de fazer o que você quer, é utilizando métodos published, que já foi muito comentado por várias pessoas aqui. Não dá pra fazer chamadas a métodos utilizando somente uma string representando seu nome; isso vai contra a filosofia da linguagem, contra a sua base e razão de existir. Você consegue fazer isso em outras linguagens (vc não falou de nenhuma em particular) como, por exemplo, em Java. No entanto, veja que esta prática quebra o encapsulamento (um dos pilares da OOP). O mesmo podemos dizer de Ruby, Python, etc... Cordialmente, MD
RES: RES: RES: RES: [delphi-br] MethodAddress retornando NIL
Uma coisa que o Marcos disse é verdade. Chamadas de funções dinâmicas somente podem ser feitas em métodos PUBLISHED pois somente com esse marcador o compilador coloca na VMT da classe as informações do método. Soluções via RTTI somente com published. []´s Sergio Uetanabaro De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de eric_developer Enviada em: quinta-feira, 15 de julho de 2010 17:13 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: RES: RES: [delphi-br] MethodAddress retornando NIL Marcos, espero que esteja bem errado e dê para fazer o que preciso. Sugiro muito cuidado com certas afirmações NÃO É POSSIVEL ..., mesmo se for um expert, assim você automaticamente cria diversos limites a si mesmo. Teve situações parecidas onde um colega pediu algo e outro muito experiente e talentoso, afirmou o mesmo, e eu postei a solução (código) devidamente testada. Devido a minha experiência, acho mais fácil sempre deduzir que é possível mesmo ao que me seja totalmente alheio. Um colega disse ser possível, mas não informou como rsrs passou uma tonelada de vídeos para download, vou ver se encontro a resposta mágica. Um outro passou o código não posso testar no D2009, porque é para Delphi 2010 rsrs Tedit(sender).setfocus ou semelhante, não é o que desejo, até já criei algo parecido e vou substituir. Grato, Eric Developer Systems --- Em delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br , Marcos Douglas m...@... escreveu Olá Eric, Copiei abaixo, duas de suas mensagens: ... Primeiramente sua resposta: NÃO dá pra fazer. O Delphi possui uma linguagem FORTEMENTE TIPADA. Esse é um pró da linguagem, em vários problemas... mas também pode ser um contra quando você tenta fazer algoritmos com chamadas abstratas e/ou dinâmicas. A única possibilidade de fazer o que você quer, é utilizando métodos published, que já foi muito comentado por várias pessoas aqui. Não dá pra fazer chamadas a métodos utilizando somente uma string representando seu nome; isso vai contra a filosofia da linguagem, contra a sua base e razão de existir. Você consegue fazer isso em outras linguagens (vc não falou de nenhuma em particular) como, por exemplo, em Java. No entanto, veja que esta prática quebra o encapsulamento (um dos pilares da OOP). O mesmo podemos dizer de Ruby, Python, etc... Cordialmente, MD [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] DICA: Ordenar Grid TDBAdvGrid
Boa tarde pessoal. Como o grupo não é somente para postar problemas mas sim postar também algumas dicas e soluções, talvez para alguem seja irrelevante mais segue uma dica legal de como ordenar a grid da TMS, TDBAdvGrid. lembrando a Grid faz a ordenação automática NATIVA, basta clicar na coluna, mas no meu caso tive que deixar a propriedade 'Page Mode' da mesma habilitada e com isso ela desativa a ordenação nativa dela. Tive que implementar a minha. Aceito sugestões de melhoria Segue código. procedure TfrmTarefas.grdTarefasClickSort(Sender: TObject; ACol: Integer); var nomeField: string; options: TIndexOptions; begin if ACol 0 then exit; nomeField := grdTarefas.Columns[ACol].FieldName; cdsTarefas.IndexDefs.Update; if nomeCampo = (nomeField + '_DESC') then begin nomeCampo := nomeField + '_ASC'; options := []; end else begin nomeCampo := nomeField + '_DESC'; options := [ixDescending]; end; if cdsTarefas.IndexDefs.IndexOf(nomeField) 0 then cdsTarefas.AddIndex(nomeCampo,nomeField,options); cdsTarefas.IndexName := nomeCampo; cdsTarefas.First; end; -- Att. Rodrigo Rossi Skype: rodrigotrentinrossi MSN: rdrg_ro...@hotmail.com Fone: (45) 9963-1897 Cascavel - PR
[delphi-br] Retornar Identity
E ai galera... É o seguinte, tenho duas tabelas que tem um relacionamento de um-para-muitos, e tem um alto indice de inserções agrupadas, preciso que quando for inserido um valor na tabela master me seja retornado o número exato que foi gerado para o campo chave desta para poder usar nos filhos, está acontecendo que quando ocorre duas inserções praticamente ao mesmo tempo, quando eu mando buscar o valor inserido já foi outro inserido em cima, jogando os detalhes desses últimos registro e um só... To perdendo a cabeça com isso... alguém passou por isso? To usando SQL Server 2005 + Delphi 7 Att, Jhosef Marks de Carvalho Blog: http://www.jhosefmarks.com.br Jesus está voltando E se o meu povo, que se chama pelo meu nome, se humilhar, e orar, e buscar a minha face e se converter dos seus maus caminhos, então eu ouvirei dos céus, e perdoarei os seus pecados, e sararei a sua terra. (2 Cr 7:14) [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] [OFF-TOPIC] Sugestão
Moderador, porquê não instituímos sorteios de brindes (ou coisa do tipo) para aqueles colegas da lista que colaborarem com dicas para a lista? Assim, podemos enriquecer o conteúdo da mesma, afim de que ela fique menos 0-800-HELPDESK e seja mais útil também. Ah, mas quem poderia providenciar tais brindes? Ora, não temos inscritos na lista pessoas de destaque da Embarcadero? Eles poderiam dar uma forçinha para essa idéia dar certo. Que tal? Sds. [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Desempenho Firebird
São João da Boa Vista.. divisa com Poços de Caldas-MG -- Eny Trova Urias Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, mas um hábito- Aristóteles De: Ricardo César Cardoso ricardo_engs...@yahoo.com.br Para: delphi-br@yahoogrupos.com.br Enviadas: Quinta-feira, 15 de Julho de 2010 14:09:57 Assunto: Re: Res: [delphi-br] Desempenho Firebird Desculpe a pergunta um tanto pessoal, mas onde vc está nesse interiorzão de SP, Eny? Eu até pensei em insistir na carreira de DBA, mas sempre pinta aquela insegurança... Eu gosto muito de BD mas gosto bastante de desenvolvimento tb... Atte, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em qui, 15/7/10, Eny Urias enyur...@yahoo.com.br escreveu: De: Eny Urias enyur...@yahoo.com.br Assunto: Res: [delphi-br] Desempenho Firebird Para: delphi-br@yahoogrupos.com.br Data: Quinta-feira, 15 de Julho de 2010, 10:07 Taí... gostei! Realmente acho que o ideal é fazer parcerias com quem realmente entende da coisa... Mas, vai falar isso pro dono da empresa! Acho que o que aconteceu com meu amigo foi exatamente isso... Uma pessoa que não está mais na empresa colocou o sistema pra rodar com o FB... aí ele foi embora porque teve uma proposta melhor e sobrou pro cara do suporte dar manutenção no banco que, depois que a coisa ficou grande, não soube mais o que fazer... Mas essa profissão de DBA ainda é escassa aqui no interior... Acho rara a empresa que tem um cara pra cuidar do banco... Seria legal ter um parceiro para passar como deve ser configurado o banco, independente de qual seja. Agradeços a todos pelos esclarecimentos! -- 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, 15 de Julho de 2010 8:55:03 Assunto: Re: [delphi-br] Desempenho Firebird O que denegre o banco, ao meu ver, é que se ele exige ou pelo menos requeira um DBA para fazer o trabalho de ajuste e tunnagem do mesmo, aí vem muitas vezes o próprio desenvolvedor na base da fuçação mesmo pra tentar configurar. Acaba até configurando corretamente, mas depois de muito penar e gerar desgastes com o cliente. Muitos lugares, o desenvolvedor vai para uma filial, chega lá não tem nada estruturado para ele trabalhar e lá vai o cara atrasar seu cronograma e partir pro heroismo pra resolver problemas que não deveriam existir lá. A questão que vejo, é que muitas empresas e muitos cartolas nao entendem que no universo do desenvolvimento, cada macaco no seu galho. Banco de dados é com DBA, desenvolvimento é com o programador e levantamento de requisitos/mapeamento de processos é com o analista. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil wchag...@bol.com.br http://delphitocorporerm.blogspot.com/ http://twitter.com/wchagas MSN: whitesock...@hotmail.com SKYPE: WalterChagasJr - Original Message - From: Ricardo César Cardoso To: delphi-br@yahoogrupos.com.br Sent: Wednesday, July 14, 2010 10:26 PM Subject: Re: [delphi-br] Desempenho Firebird Desconfio desse tipo de chute. Já vi gente dizendo Firebird em sistemas de missão critica (acho que um deles é o Bruno Lichot). Não posso dizer muito pois não tenho nenhum sistema de missão critica, mas posso dizer que no quesito VOLUME DE DADOS o FB aguenta o tranco. Um camarada aqui tem um sistema que já acumulou 40 GB de dados dos mais diversos na base e roda que é uma belezinha .Tem foto, áudio, vídeo e até planilhas e arquivos PDFs gravados no BD juntos com os campos de dados. Todo BD que trabalha em missão crítica (eu até diria que até mesmo o hardware) precisa de um tuning ou de refinamentos para melhorar a performance. A diferença é que no FB esse tipo de ajuste tem que ser feito pelo DBA no braço. Ou seja, não há wizards que fazem todo o trabalho pesado. Vc tem que conhecer os conceitos para saber exatamente o que está fazendo. Outros fatores são o processador em uso e a versão do BD que está usando (SuperClassic, ClassicServer, SuperServer) que pode oferecer mais refinamentos. Só por desencargo de consciência, indica pro teu amigo ler isso aqui (http://www.sinatica.com/blog/br/index.php/artigos/firebird-superserver-classicserver-ou-superclassic) e acompanhar a Lista Firebase BR. Um BD que tenho vontade (só vontade, pois tempo eu não tenho mesmo...) de testar é o PostGree é gratuito e aguenta o tranco como os majors, pelo menos é o que dizem. Uma última dúvida: que BD entrou no lugar do FB? Tanto o Oracle XE quando o SQL Server Express tem limitações quanto ao tamanho máximo que o arquivo
[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]
Re: [delphi-br] Retornar Identity
cara... só fazendo uma stored procedure... declare o parametro que você quer retornar como OUTPUT create procedure sp_Gravar @ID INT OUTPUT, -- ai vc insere os valores -- e retorna o ultimo identity gerado pelo SQL SELECT @id = SCOPE_IDENTITY() se não for em uma procedure não há como garantir a integridade do valor retornado, com a sp é possível pq o sql cria uma transação antes de executar... o/ Em 15/07/2010 17:37, Jhosef Marks escreveu: E ai galera... É o seguinte, tenho duas tabelas que tem um relacionamento de um-para-muitos, e tem um alto indice de inserções agrupadas, preciso que quando for inserido um valor na tabela master me seja retornado o número exato que foi gerado para o campo chave desta para poder usar nos filhos, está acontecendo que quando ocorre duas inserções praticamente ao mesmo tempo, quando eu mando buscar o valor inserido já foi outro inserido em cima, jogando os detalhes desses últimos registro e um só... To perdendo a cabeça com isso... alguém passou por isso? To usando SQL Server 2005 + Delphi 7 Att, Jhosef Marks de Carvalho Blog: http://www.jhosefmarks.com.br Jesus está voltando E se o meu povo, que se chama pelo meu nome, se humilhar, e orar, e buscar a minha face e se converter dos seus maus caminhos, então eu ouvirei dos céus, e perdoarei os seus pecados, e sararei a sua terra. (2 Cr 7:14) [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: RES: [delphi-br] MethodAddress retornando NIL
Se não for published, não dá pra recuperar o nome. Dá uma pesquisada sobre VMT (Virtual Method Table). O delphi armazena a quantidade de métodos virtuais e os ponteiros dos respectivos métodos nessa tabela, mais o nome do método em si, só se estiver no published. Na unit JclSysUtils.pas da JVCL tem os métodos: function GetVirtualMethodCount(AClass: TClass): Integer; function GetVirtualMethod(AClass: TClass; const Index: Integer): Pointer; Além desses, tem: type PMethodEntry = ^TMethodEntry; TMethodEntry = packed record EntrySize: Word; Address: Pointer; Name: ShortString; end; PMethodTable = ^TMethodTable; TMethodTable = packed record Count: Word; FirstEntry: TMethodEntry; {Entries: array [1..65534] of TMethodEntry;} end; function GetMethodTable(AClass: TClass): PMethodTable; function GetMethodEntry(MethodTable: PMethodTable; Index: Integer): PMethodEntry; Mais o PMethodTable, por onde é possível assessar o PMethodEntry.Name, só retorna os métodos published. Faça teste e procure sobre VMT(Virtual Method Table) Em 15 de julho de 2010 17:24, Sérgio T. Uetanabaro s...@allbras.com.brescreveu: Uma coisa que o Marcos disse é verdade. Chamadas de funções dinâmicas somente podem ser feitas em métodos PUBLISHED pois somente com esse marcador o compilador coloca na VMT da classe as informações do método. Soluções via RTTI somente com published. []´s Sergio Uetanabaro 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 eric_developer Enviada em: quinta-feira, 15 de julho de 2010 17:13 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: Re: RES: RES: RES: [delphi-br] MethodAddress retornando NIL Marcos, espero que esteja bem errado e dê para fazer o que preciso. Sugiro muito cuidado com certas afirmações NÃO É POSSIVEL ..., mesmo se for um expert, assim você automaticamente cria diversos limites a si mesmo. Teve situações parecidas onde um colega pediu algo e outro muito experiente e talentoso, afirmou o mesmo, e eu postei a solução (código) devidamente testada. Devido a minha experiência, acho mais fácil sempre deduzir que é possível mesmo ao que me seja totalmente alheio. Um colega disse ser possível, mas não informou como rsrs passou uma tonelada de vídeos para download, vou ver se encontro a resposta mágica. Um outro passou o código não posso testar no D2009, porque é para Delphi 2010 rsrs Tedit(sender).setfocus ou semelhante, não é o que desejo, até já criei algo parecido e vou substituir. Grato, Eric Developer Systems --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brmailto: delphi-br%40yahoogrupos.com.br delphi-br%2540yahoogrupos.com.br , Marcos Douglas m...@... escreveu Olá Eric, Copiei abaixo, duas de suas mensagens: ... Primeiramente sua resposta: NÃO dá pra fazer. O Delphi possui uma linguagem FORTEMENTE TIPADA. Esse é um pró da linguagem, em vários problemas... mas também pode ser um contra quando você tenta fazer algoritmos com chamadas abstratas e/ou dinâmicas. A única possibilidade de fazer o que você quer, é utilizando métodos published, que já foi muito comentado por várias pessoas aqui. Não dá pra fazer chamadas a métodos utilizando somente uma string representando seu nome; isso vai contra a filosofia da linguagem, contra a sua base e razão de existir. Você consegue fazer isso em outras linguagens (vc não falou de nenhuma em particular) como, por exemplo, em Java. No entanto, veja que esta prática quebra o encapsulamento (um dos pilares da OOP). O mesmo podemos dizer de Ruby, Python, etc... Cordialmente, MD [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: RES: RES: [delphi-br] Procurar Nome da tabela dentro da query
Leu o meu post? Em 15 de julho de 2010 16:07, Evaldo evaldoave...@yahoo.com.br escreveu: Simples, não acredito que seja por que pode haver algumas querys com muitos joins e querys sem a clausula where Obrigado. From: Rubem Rocha rubem.ro...@dtmanaus.com.brrubem.rocha%40dtmanaus.com.br To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Sent: Thu, July 15, 2010 3:29:19 PM Subject: RES: RES: [delphi-br] Procurar Nome da tabela dentro da query Pode ser que existam parsers mas, como podes constatar que isso é bem simples, nada impede que você possa construir o seu próprio parser. Boa sorte. Sds. 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 Evaldo Enviada em: quinta-feira, 15 de julho de 2010 14:25 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Procurar Nome da tabela dentro da query Obrigado, achei que alguém podesse ter um parser para fazer isto. From: Rubem Rocha rubem.ro...@dtmanaus.com.brrubem.rocha%40dtmanaus.com.br mailto:rubem.rocha%40dtmanaus.com.br rubem.rocha%2540dtmanaus.com.br To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br mailto: delphi-br%40yahoogrupos.com.br delphi-br%2540yahoogrupos.com.br Sent: Thu, July 15, 2010 11:52:45 AM Subject: RES: [delphi-br] Procurar Nome da tabela dentro da query Não tem algoritmo ou fórmula mirabolante pra esse caso. Usando a função Pos(), peque a posição da palavra FROM e a posição da próxima cláusula seguinte ao FROM (que pode ser WHERE, GROUP BY, HAVING, ORDER BY ou qualquer uma outra, dependendo do banco de dados que estejas usando). Recorte a string dentro desse faixa de posições e analise para obter o(s) nome(s) da(s) tabela(s) desejada(s). Sds. De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br mailto: delphi-br%40yahoogrupos.com.br delphi-br%2540yahoogrupos.com.br [mailto:delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brmailto: delphi-br%40yahoogrupos.com.br delphi-br%2540yahoogrupos.com.br ] Em nome de Evaldo Enviada em: quinta-feira, 15 de julho de 2010 10:41 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brmailto: delphi-br%40yahoogrupos.com.br delphi-br%2540yahoogrupos.com.br Assunto: [delphi-br] Procurar Nome da tabela dentro da query Alguém tem algum algoritimo para capturar o nome da tabela a que se refere uma query? por exemplo um objeto TsqlQuery com a instrução: ' select nome,telefone from CLIENTE where idcliente = :cliente '; o algoritimo iria retornar 'CLIENTE'. [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
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
[delphi-br] [NDDV] Tratamento de PDV Off-line e On-line
Olá, pessoal gsotaria da opinião de vocês sobre o uso do ClientPDV(DataSnap+ Delphi2010) . Qual a melhor maneira na opnião de cada um em relação ao tratamento do uso Off-Line e On-Line? Tenho o seguinte ambiente: -AppServer -AppClient Quando o AppClient não acha conexão com o AppServer, qual a melhor forma de guardar esses dados localmente e depois sincronizar para o AppServer? Uma AppMonitor para verifiar se existe pendencia a ser enviada para o AppServer seria a solução? (Usando Threads) A própria AppClient fazer isso usando Threads? E é melhor guardo em um Banco de Dados local? Se sim, Ter um Banco de Dados igual ao do Server, ou somente com as informações necessárias para funcionar o AppClient? O que os amigos acham sobre tudo isso? Grato, === Jean Barreiros Programador/Web-Designer Delphi|C++|PHP|JavaScript FireBird|MySql|SQLServer PostGree|Oracle msn: delphij...@gmail.com e-mail: delphij...@yahoo.com.br === [As partes desta mensagem que não continham texto foram removidas]