LENTO/TRAVANDO O VB
Wiliam agradeço muito sua atenção, e seu exemplo é nota 1000, mas com cálculos que estou fazendo aqui esta levando entre 00:25:17 e 00:24:08, para realizar 30.000 registros...olhei todos os meus de conexão, cursores, etc, mas naum adiantou muito...estou encaminhando uma msg interna para vc, com a toda função para sua analise.
Agradeço desde jah a todos.....
Agradeço desde jah a todos.....
aterloni, basicamente o problema realmente esta na quantidade de registros processados em uma unica vez, bem como a quantia de recordsets abertos para executar o processo, mais uns detalhes, voce fez assim:
Dim rsBoletos As New ADODB.Recordset
Set rsBoletos = New ADODB.Recordset
faça assim:
Dim rsBoletos As ADODB.Recordset 'sem o uso do new aqui
Set rsBoletos = New ADODB.Recordset 'aqui esta correto:
como diria o kpellajr, declarando desta forma o seu computador, tende a ficar "estranho", outra coisa você fez apenas isto:
With rsBoletos
.ActiveConnection = cxGlobal
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockPessimistic
.Open "select CODBOLETO, CARTAO, VENCIMENTO, COMPRAS, JUROS, MULTA, DESP_COBRANCA, UTI, UTS, TOTAL, MINIMO from BOLETOS"
End With
para o rsBoletos, altere a estrutura para os demais recordsets
feche imediatamente todos os recordsets apos o seu uso, para liberar o computador o mais rapido possivel.
se você conseguir diminuir a linha de comandos que fazem a alteração tambem ajudaria em muito, (vou ficar devendo uma melhor analize quanto as possiveis mudanças nestas linhas).,poste a faça o que te indiquei e veja se melhorou, se sim poste a nova rotina aqui, para que os demais usuarios vejam como esta, para que tambem possam te auxiliar.
Dim rsBoletos As New ADODB.Recordset
Set rsBoletos = New ADODB.Recordset
faça assim:
Dim rsBoletos As ADODB.Recordset 'sem o uso do new aqui
Set rsBoletos = New ADODB.Recordset 'aqui esta correto:
como diria o kpellajr, declarando desta forma o seu computador, tende a ficar "estranho", outra coisa você fez apenas isto:
With rsBoletos
.ActiveConnection = cxGlobal
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockPessimistic
.Open "select CODBOLETO, CARTAO, VENCIMENTO, COMPRAS, JUROS, MULTA, DESP_COBRANCA, UTI, UTS, TOTAL, MINIMO from BOLETOS"
End With
para o rsBoletos, altere a estrutura para os demais recordsets
feche imediatamente todos os recordsets apos o seu uso, para liberar o computador o mais rapido possivel.
se você conseguir diminuir a linha de comandos que fazem a alteração tambem ajudaria em muito, (vou ficar devendo uma melhor analize quanto as possiveis mudanças nestas linhas).,poste a faça o que te indiquei e veja se melhorou, se sim poste a nova rotina aqui, para que os demais usuarios vejam como esta, para que tambem possam te auxiliar.
Bom galera ! Agradeço de coração a todos q me ajudarem nessa dúvida. Agradeço principalmente ao Laerte, pois foi quem me passou todos os truques para criar uma Store Procedure, hj estava rodando 30.000 em 3 segundos ! vlw galera...um abraço...até a próxima !
Tópico encerrado , respostas não são mais permitidas