MYSQL X MARIABD

JOERBETH 21/10/2016 18:40:11
#468286
Boa tarde queridos

Seguinte, estou tentando fazer uma conexão remota em mysql, tenho:

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 = [Ô]blablabla.jkinfonet.com.br[Ô]
BD = [Ô]jkinfonet[Ô]
PORTA = [Ô]3306[Ô]
USER = [Ô]jkinfonet[Ô]
SENHA = [Ô]blablablas[Ô]
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

mais não roda, diz que o cliente não suporta a questão do protocolo, que eu tenho que considerar o upgrade para o MariaBD??, alguém tem alguma ideia de como eu faço isso? rs

grato

Joerbeth
JOERBETH 21/10/2016 18:52:35
#468287
so uma observação, quando faço p teste pelo phpadmin da certo e pelo odbc via fonte de dados
ACCIOLLY 22/10/2016 09:45:41
#468291
Resposta escolhida
a conexão ao mysql e ao mariadb pode ser feita sem problemas desde que utilize o Connecto/Net disponível em dev.mysql.com/downloads/connector/net/.

Após instalar, adicione-o nas referencias do projeto.
Com isso você pode conectar-se para fazer operações de diversas formas. A mais básica é centralizar tudo em uma classe de conexão. Desta forma:


using System;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;


namespace exemplo
{
class Conexao
{
static string caminhoBanco = [Ô]SERVER=127.0.0.1;DATABASE=seu_banco;UID=seu_usuario;PWD=sua_senha;[Ô];

/**
* Parametro SQL string para setar uma pesquisa no banco de dados
* Retorna Uma tabela com o resultado da pesquisa segundo o parametro SQL
* OBS: Ao instanciar este método, setar apenas SQL de SELECT
*/

static public DataTable Pesquisar(String SQL)
{
DataTable tabela = new DataTable();

try
{
MySqlConnection conn = new MySqlConnection(caminhoBanco);
tabela.Rows.Clear();

conn.Open();

MySqlCommand comando = new MySqlCommand(SQL, conn);
MySqlDataAdapter adapter = new MySqlDataAdapter(comando);

adapter.Fill(tabela);

conn.Close();

}
catch (Exception Ex)
{
MessageBox.Show([Ô]Erro de Comando: [Ô] + Ex.Message);
}

return tabela;
}

/**
* Parametro SQL string para setar uma pesquisa no banco de dados
* OBS: Ao instanciar este método, setar apenas SQL de INSERT, UPDATE ou DELET
*/

static public void CRUD(string SQL)
{
try
{
MySqlConnection conn = new MySqlConnection(caminhoBanco);
conn.Open();

MySqlCommand comando = new MySqlCommand(SQL, conn);

comando.ExecuteNonQuery();
conn.Close();
}
catch (Exception Ex)
{
MessageBox.Show([Ô]Erro de Comando: [Ô] + Ex.Message);
}
}

}
}

Depois realizar as operações chamando a classe assim:

Conexao.Pesquisar([Ô]SELECT * FROM ...[Ô]);

ou
Conexao.CRUD([Ô]INSERT INTO ... ou UPDATE... ou DELETE ...[Ô]);


OBS: Tudo que fiz é em C#, mas se você entende bem o .Net, não terá dificuldades pra passar pro VB
JOERBETH 28/10/2016 14:18:36
#468518
obrigado
Tópico encerrado , respostas não são mais permitidas