CONSULTA APÓS CONEXÃO MYSQL REMOTO

LEAO10 18/01/2016 01:28:06
#456229
Olá Galera,

Utilizo access a muitos anos e estou passando agora para mysql remoto...

Usei a conexão que o Marcelo Treze indicou (cópia abaixo), e funcionou normal

Citação:


Public Conexao As New ADODB.Connection

Public Function Conecta(ByVal Valor As Boolean)
Dim CON_STR As String
Dim SERVER As String
Dim USER As String
Dim SENHA As String
Dim PORTA As String
Dim BD As String
[ô]verifica se a conexao está aberta e fecha para evitar erros
If Conexao.State = 1 Then
Conexao.Close
Set Conexao = Nothing
Valor = True
End If
If Valor = True Then
SERVER = [Ô]201.20.24.80[Ô]
BD = [Ô]nome_do_banco[Ô]
PORTA = [Ô]3306[Ô]
USER = [Ô]nome_de_usuário[Ô]
SENHA = [Ô]senha[Ô]
CON_STR = [Ô]DRIVER={MySQL ODBC 3.51 DRIVER};[Ô] _
& [Ô]Server=[Ô] & SERVER & [Ô];[Ô] _
& [Ô]Port=[Ô] & PORTA & [Ô];[Ô] _
& [Ô]Database=[Ô] & BD & [Ô];[Ô] _
& [Ô]UID=[Ô] & USER & [Ô];[Ô] _
& [Ô]PWD=[Ô] & SENHA & [Ô];[Ô] _
& [Ô]Option=3;[Ô]
With Conexao
.CursorLocation = adUseClient
.ConnectionString = CON_STR
.Open CON_STR
End With
Else
Conexao.Close
Set Conexao = Nothing
End If
End Function



Quando coloco conexao (true) ele não dá erro, tá ok.

O problema é que acho que estou pensando localmente, e não sei como [Ô]traduzir[Ô] o código abaixo que sempre uso:


[txt-color=#0000f0] Dim WsUm As Workspace
Dim arquivo As Database
Dim Sql As String
Dim RsTemp As Recordset

Set WsUm = Workspaces(0)

Set arquivo = WsUm.OpenDatabase(([Ô]C:\Users\Adm\Desktop\Temp\banco.mdb[Ô]), False, False, [Ô];pwd=senha[Ô])

Sql = [Ô]Select * from Cliente[Ô]

Set RsTemp = arquivo.OpenRecordset(Sql)

MsgBox RsTemp!Nome
MsgBox RsTemp!Endereco

[/txt-color]

Quero usar a mesma instrução acima, porém, no mysql remoto
KURTGU 18/01/2016 08:13:28
#456233
SERVER =[txt-color=#e80000] [Ô]O PROVEDOR IRA TE FORNECER[Ô][/txt-color]
BD = [Ô]nome_do_banco[Ô]
PORTA = [Ô]3306[Ô]
USER = [txt-color=#e80000] [Ô]O PROVEDOR IRA TE FORNECER[Ô][/txt-color]
LEAO10 18/01/2016 13:31:37
#456244
Obrigado Kurtgu, mas a conexão eu já tenho ... Criei o banco, o usuário, adicionei o usuário ao banco ... coloquei o código do Marcelo Treze num módulo, preenchi com os dados de ip, banco, usuário, senha

No código abaixo:

[txt-color=#0000f0] Conecta (True) [ô]faz a conexão com o banco de dados
Dim Rs As Recordset
Set Rs = Conexao.Execute([Ô]SELECT * FROM tabela[Ô])[/txt-color]

dá o seguinte resultado

[txt-color=#e80000] [MySQL][ODBC 3.51 Driver][mysql-5.5.40-36.1]Table [ô]dominio_banco.tabela[ô] doesn't exist[/txt-color]

até aí tudo bem, porque não existe a tabela com o nome [Ô]tabela[Ô], mas coloco * FROM Cliente retorna


[txt-color=#e80000]
Rum-time error [ô]13[ô]

type mismatch
[/txt-color]



FABRICIOWEB 18/01/2016 13:42:44
#456245
Utilizo assim a muito tempo e com banco na web
Coloque em um modulo

Public CON As ADODB.Connection
Public rs As ADODB.Recordset


Sub Connect()
On Error GoTo tratado
Set CON = CreateObject([Ô]ADODB.Connection[Ô])
Set rs = CreateObject([Ô]ADODB.Recordset[Ô])
Dim sConn As String
sConn = [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô]
sConn = sConn & [Ô]SERVER=[Ô][txt-color=#e80000]ip do servidor[/txt-color];[Ô]
sConn = sConn & [Ô]USER=[txt-color=#e80000]user[/txt-color];[Ô]
sConn = sConn & [Ô]PWD=123;[Ô]
sConn = sConn & [Ô]database=[txt-color=#e80000]base de dados[/txt-color][Ô]
CON.Open sConn [ô]Abre o Banco de Dados
rs.CursorLocation = adUseClient
tratado:
End Sub

Sub Disconnect()
On Error GoTo TrataErro10
rs.Close
CON.Close


TrataErro10:

If Err.Number = 3265 Then
MsgBox [Ô]Erro de dados[Ô]
End If


Set rs = Nothing
Set CON = Nothing


End Sub


No evento clique

Connect

rs.Open [Ô]SELECT * FROM [txt-color=#e80000]tabela[/txt-color][Ô], CON, adOpenStatic, adLockOptimistic

disconnect
LEAO10 18/01/2016 22:58:36
#456251
Obrigado pela atenção FabricioWeb

Coloquei mas agora a conexão não funciona... Vi que o código também não possui a porta
LEAO10 18/01/2016 23:45:01
#456253
Amém, consegui... após usar a conexão do Marcelo Treze, usei o código abaixo para consultar:

[txt-color=#0000f0] Conecta (True)

Dim RsRemoto As ADODB.Recordset
Set RsRemoto = New ADODB.Recordset

RsRemoto.Open [Ô]SELECT * FROM Cliente[Ô], Conexao, adOpenStatic, adLockOptimistic

MsgBox RsRemoto!cep

Conecta (False)[/txt-color]

[txt-color=#e80000]O problema é que demorou 29 segundos para retornar ... será que estou fazendo algo errado ???[/txt-color]
Tópico encerrado , respostas não são mais permitidas