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)
ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ

Responder a