ADODC E ADODB
Hoje aconteceu uma coisa muito curiosa:
Estou acessando um banco de dados hospedado no Redehost. Até então estava tudo bem, mas hoje eu estou tento problemas com minha internet a rádio e o acesso estava muitÃssimo lento. Então verifiquei com o comando Ping que estava perdendo pacotes de vez em quando.
Ficava muito lento quando eu dava um comando no ADODB (via código) por exemplo:
Isso demorava uma eternidade para executar...
outro exemplo:
TabContas.Filter = [Ô][Código] = [ô][Ô] & Código_ & [Ô][ô][Ô]
Esse comando demorava quase 30 segundo para executar.
Tá com problemas de pacote! Eu sei!
Mas a questão é o seguinte:
Eu descobri que se eu criar um ADODC no meu formulário e executar esses mesmo comando atravéz dele, a execução fica rápida tal como não tivesse problemas de pacote. Tal como:
Alguém sabe por que isso acontece?
Será que se eu criar Adodc pra tudo, é melhor pro meu sistema?
Estou acessando um banco de dados hospedado no Redehost. Até então estava tudo bem, mas hoje eu estou tento problemas com minha internet a rádio e o acesso estava muitÃssimo lento. Então verifiquei com o comando Ping que estava perdendo pacotes de vez em quando.
Ficava muito lento quando eu dava um comando no ADODB (via código) por exemplo:
Set TabAtividades = New ADODB.Recordset
TabAtividades.Open [Ô]SELECT * FROM [Atividades] Where [Atividade] IN [Ô] & UsuárioA & [Ô] ORDER BY [Prioridade] DESC;[Ô], Conexão, adOpenStatic, adLockOptimistic
Do While TabAtividades.EOF = False
ComboBox1.AddItem TabAtividades![Atividade]
TabAtividades.MoveNext
Loop
Isso demorava uma eternidade para executar...
outro exemplo:
TabContas.Filter = [Ô][Código] = [ô][Ô] & Código_ & [Ô][ô][Ô]
Esse comando demorava quase 30 segundo para executar.
Tá com problemas de pacote! Eu sei!
Mas a questão é o seguinte:
Eu descobri que se eu criar um ADODC no meu formulário e executar esses mesmo comando atravéz dele, a execução fica rápida tal como não tivesse problemas de pacote. Tal como:
Adodc1.recordsource = [Ô]SELECT * FROM [Atividades] Where [Atividade] IN [Ô] & UsuárioA & [Ô] ORDER BY [Prioridade] DESC;[Ô]
Adodc1.refresh
Do While Adodc1.Recordset.EOF = False
ComboBox1.AddItem Adodc1.Recordset![Atividade]
Adodc1.Recordset.MoveNext
Loop
Alguém sabe por que isso acontece?
Será que se eu criar Adodc pra tudo, é melhor pro meu sistema?
Veja se no Adodc a conexão já está aberta, quando você faz a consulta. Com ADODB você abre a conexão na hora da consulta. Verifica as propriedades de conexão do Adodc1 e coloca no código.
TabAtividades.CursorLocation = adUseClient
TabAtividades.LockType = adLockReadOnly
Conexao.CommandTimeout = 30
Conexao.CursorLocation = adUseClient
Conexao.Mode = adModeUnknown
Tópico encerrado , respostas não são mais permitidas