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