USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Conexão Muiito lenta com MySQL
andy.garcia
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 01/06/2005 10:44 hs            
Olá pessoal,
 
Acabei de migrar um aplicação de Access para MySQL, consegui a conexão normalmente com o My SQL através da rotina abaixo:
 
'**** criando a conexão
Set Conexao = CreateObject("ADODB.Connection")
'**** abrindo conexão
Conexao.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Port=3306; Option=3; Database=Banco; Uid=root; Pwd=;"
'**** criando recordset
Set Rs = CreateObject("ADODB.RecordSet")
 
o problema é que minha aplicação ficou muiiito lenta, por Exemplo
quando dou um
"SELECT Nome,Sobrenome From tabela_clientes" pra carregar um simples combo com aproximadamente 3.000 registros o sistema demora cerca de 2 a 3 Minutos ...
tornando inviável minha aplicação ...
 
Não sei o q fazer ... isso ocorre remotamente e em localhost também .....
Alguém bom em MySQL poderia me ajudar ...
 
Obrigado
Andy.Garcia
 
   
ROBERTO MENDES
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 01/06/2005 16:52 hs            

Você está usando o mecanismo JetDatabase da Microsoft para acessar o banco de dados.Utilize este mecanismo para access apenas.

Para o MySQL ou Oracle utilize conforme abaixo:

Note que Connection e Command Timeout são em segundos para aguardar o retorno do Banco de Dados sem gerar erro na conexâo ou execução das Instruções SQL.

Se você estiver tendo mensagens de erro, tente aumentar o tempo limite. Normalmente para aplicações locais com um bom servidor (Hardware), 15 segundos é suficiente, já levando em conta uma certa carga do servidor. Em conexões via internet, aonde o Servidor de Banco de Dados residirá em outra localidade, o ideal é manter sempre um tempo igual ou superior a 30 segundos, dependendo do link ao qual o Servidor MySQL está conectado e ao numero de usuários conectados e Queries executadas por segundo.

 

 

Set DB = New ADODB.Connection

DB.Provider = "MySQLProv"

DB.ConnectionString = ""

DB.CommandTimeout = 15

DB.ConnectionTimeout = 15

DB.CursorLocation = adUseServer

DB.Open "LOCATION=localhost;DSN=nomedoDSNcriado;DB=nomedobd;Data Source=nomedobd", "usuario", "senha"

Me avise se funcionar ou se precisar de algo mais.

 

 

[]´s

Roberto Mendes

 

   
andy.garcia
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 02/06/2005 02:58 hs            
Olá Roberto ...
 
tentei rodar o código acima mas deu o seguinte erro:
 
error '3706' Method 'Open' of object '_connection ' failed
 
Tenho q fazer referencia no VB para algum novo Objeto ?
Criei o DSN mas mesmo assim não consegui a conexão.
 
Agradeço o suporte dado e
fico no Aguardo de mais detalhes ... se vc tiver algum exemplo mais detalhado eu agradeceria ...
 
Obrigado
Abraços
Andy.garcia
 
   
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 02/06/2005 11:05 hs         
Você deve adicionar referências ao seu projeto. Esse número de erro (3706) é bem típico de DAO. Portanto passo a passo:
1 - Adicine as referências: Microsoft ActiveX Data Objects X.X Library (onde X.X é a versão mais recente que vc tiver. Microsoft ActiveX Data Objects (MultiDimensional) X.X. E Microsoft ActiveX Data Objects RecordSet X.X Library
2 - Em algum lugar coloque o código abaixo:
Dim Cn As New ADODB.Connection
Set Cn = New ADODB.Connection
Cn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Port=3306; Option=3; Database=Banco; Uid=root; Pwd=;"
 
E era isso. O banco vai estar aberto.
   
andy.garcia
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 02/06/2005 11:34 hs            
Kerplunk, dessa forma eu consegui abrir o banco OK.
 
O problema é a lentidão .... pra carregar um combo com 3.000 nomes .. demora cerca de 4 minutos ... segundo o Roberto que postou um pouco acima estou usando o mecanismo JetDatabase da Microsoft para acessar o banco de dados e passou uma outra forma de conexão ....
 
Set DB = New ADODB.Connection
DB.Provider = "MySQLProv"
DB.ConnectionString = ""
DB.CommandTimeout = 15
DB.ConnectionTimeout = 15
DB.CursorLocation = adUseServer
DB.Open "LOCATION=localhost;DSN=nomedoDSNcriado;DB=nomedobd;Data Source=nomedobd", "usuario", "senha"
 
mas dessa forma aparece o erro
error '3706' Method 'Open' of object '_connection ' failed
e não conecta ...
 
fico no aguardo de mais uma força de vocês .
 
Valeu gente ,,,
 
Abraço
Andy
   
andy.garcia
SÃO PAULO
SP - BRASIL
Postada em 02/06/2005 12:25 hs            
Pessoal,
 
Apenas mais uma informação: Fiz o Download do MDAC 2.8 e fiz referencia ao
"Microsoft ActiveX Data Objects 2.8", tentei novamente e o erro mudou dessa vez para: '3706' - Provider cannot be found. It may not be properly installed
devo fazer download desse provider "MySQLProv" ?
fico no aguardo ..
obrigado
Andy.garcia
 
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página