Francisco, O cc1 é o objeto cMeter ( indicador de processo ). Vc pode coloca-lo em qualquer form desde que especifique o form e o objeto. Ex: Vamos chamar o objeto cMeter de "ccContador" call VisWinSetMeter( frmTeste.ccContador, nPasso ) Bom,eu gostaria de somente acrescentar no e-mail anterior, colocando antes do processo iniciar, "zerar" o contador. então: set nTotal = 0 set nPasso = 0 call VisWinSetMeter( cc1, 0 ) Espero ter solucionado sua dúvida Ricardo -----Mensagem original----- De: FRANCISCO FRANK [mailto:[EMAIL PROTECTED]] Enviada em: Quinta-feira, 22 de Março de 2001 16:21 Para: [EMAIL PROTECTED] Assunto: Re: RES: [sqlwin] Proposta para cMeter Alo Ricardo, Na tua dica voce colocou a seguinte instrução: call VisWinSetMeter( cc1, nPasso ) Minha duvida: Aonde deve ser colocado o cc1? Minha aplicação tem varios form. Sempre que eu consultar dados em qualquer form, o cMeter deve ser acionado. F. Frank >From: [EMAIL PROTECTED] >Reply-To: [EMAIL PROTECTED] >To: [EMAIL PROTECTED] >Subject: RES: [sqlwin] Proposta para cMeter >Date: Tue, 20 Mar 2001 17:29:31 -0300 > >Prezado amigo, > > Trabalho com cMeter na seguinte maneira. Não sei se é o que vc >precisa mas é bem facil. >Preparo o Select > >set nTotal = 0 >set nPasso = 0 >call SqlPrepareAndExecute( hSql, '..... ') >call SqlGetResultSetCount( hSql, nTotal ) = pego o total de registros no >meu >select >if nTotal > 0 > set nTotal = 100/nTotal >while SqlFetchNext( hSql, nFetch ) > set nPasso = nPasso + nTotal > .... ( procedimentos intermediários ) > call VisWinSetMeter( cc1, nPasso ) > >É um processo simples mas funciona. >Espero ter ajudado. > >Ricardo > >-----Mensagem original----- >De: FRANCISCO FRANK [mailto:[EMAIL PROTECTED]] >Enviada em: Terça-feira, 20 de Março de 2001 16:47 >Para: [EMAIL PROTECTED] >Assunto: [sqlwin] Proposta para cMeter > > >Prezados colegas, > >A alguns dias solicitei ao grupo, ajuda sobre cMeter. Não me lembro quem >foi > >mas tenho certeza q um dos colegas tinha o mesmo problema que eu. Sendo >assim tenho a seguinte proposta enviada pelo professor Lairton: >[EMAIL PROTECTED] > >Sobre esta sua dúvida com relação ao objeto cMeter numa consulta a 60 mil >registros ... você pode utilizá-lo sem problemas, posso até montar um >exemplo e enviar-lhe, mas é preciso que seja entendido o mecanismo de >consulta. >Vamos supor que você execute sua consulta assim : > >Call SqlPrepareAndExecute ( hSql , sConsulta ) (1) >While SqlFetchNext ( hSql , nRet ) (2) > Call fAddLinhaDoResultSetNumaTableWindow( ) (3) > >Acontece que normalmente a maior parte do tempo gasto pra executar sua >consulta é gasto na instrução presente na linha (1). >Imagino que mais de 50% do tempo será gasto na execução desta linha. O laço >iniciado na linha (2) representa pouco tempo gasto em relação a linha (1), >e >a linha (3) é a que é responsável em copiar a linha do result set para a >tela. > >O cMeter, ao ser iniciado, precisa ter bem definido os seus limites, ou >seja, o valor inicial (que normalmente é 0) e o valor final, que poderia >ser >o número de linhas que sua consulta retornou. Mas isso não corresponde a >realidade, pois imagine que sua consulta demore 1 minuto pra trazer 1 linha >!!! > >É preciso ter conhecimento deste detalhe para não se assustar com o >resultado. Imagine uma consulta dessas sendo executada pelo seu sistema ... >O metter mostra 1% e passa assim quase 1 minuto , parado, dá até a >impressão >de que a máquina travou né. E posteriormente, quando as poucas linhas >retornarem a barra do cMeter chegará ao 100% rapidamente. > >Com o cMeter poderia ser algo parecido com ..... > >Call objMeter.Init ( ) >(1) >Call objMeter.SetLimiteInicial( 0 ) (2) >Call SqlPrepareAndExecute ( hSql , sConsulta ) (3) >Call SqlGetResultSetCount( hSql , nQtd ) (4) >Call objMeter.SetLimiteFinal( nQtd ) (5) >Set nLinha = 0 >(6) >While SqlFetchNext ( hSql , nRet ) (7) > Call objMeter.SetStatusAtual( nLinha ) (8) > Set nLinha = nLinha + 1 (9) > Call fAddLinhaDoResultSetNumaTableWindow( ) (10) > >a linha 2 define que o objeto meter iniciará sua contagem no valor zero. >A linha 4 conta quantas linhas retornaram na consulta, isso é uma tarefa >demorada. >A linha 5 define que o objeto meter encerrará sua contagem no valor em >nQtd. >E a linha 8 mostra o percentual atual de execução. > >Em consultas onde perde-se pouco tempo na linha 3 e muito tempo na >recuperação destas linhas ( linha 7 e 10 ) o meter é ideal. > >_________________________________________________________________________ >Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. > >============================================== >Lista de Centura SQLWindows >Administrador : [EMAIL PROTECTED] >[ http://www.centuraexplorer.com ] >Para sair desta lista mande mensagem para: >[EMAIL PROTECTED] sem nada no Subject e >com o comando a seguir no corpo da msg: >"unsubscribe sqlwin" (sem as aspas) >============================================== >=============================================Lista de Centura SQLWindows >Administrador : [EMAIL PROTECTED] >[ http://www.centuraexplorer.com ] >Para sair desta lista mande mensagem para: >[EMAIL PROTECTED] sem nada no Subject e >com o comando a seguir no corpo da msg: >"unsubscribe sqlwin" (sem as aspas) >============================================= _________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. ============================================== Lista de Centura SQLWindows Administrador : [EMAIL PROTECTED] [ http://www.centuraexplorer.com ] Para sair desta lista mande mensagem para: [EMAIL PROTECTED] sem nada no Subject e com o comando a seguir no corpo da msg: "unsubscribe sqlwin" (sem as aspas) ============================================== ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝLista de Centura SQLWindows Administrador : [EMAIL PROTECTED] [ http://www.centuraexplorer.com ] Para sair desta lista mande mensagem para: [EMAIL PROTECTED] sem nada no Subject e com o comando a seguir no corpo da msg: "unsubscribe sqlwin" (sem as aspas) ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ