Clipper On Line • Ver Tópico - Criar BD no MySQL usando ADO

Criar BD no MySQL usando ADO

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Criar BD no MySQL usando ADO

Mensagempor MSDN » 26 Jul 2016 12:05

Bom dia,

Estou realizando testes com ADO para trabalhar com MySQL, uso Harbour 3.2.
Se crio o BD através do HeidiSQL, e executo a conexão via programa, tudo ocorre bem, porém, quando deleto o BD, e tento criá-lo dentro de minha aplicação, usando :
oConexao:Execute("CREATE DATABASE MEUTESTE")
, ocorre erro e não cria.
Qualquer ajuda é bem vinda.

Obrigado
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

Criar BD no MySQL usando ADO

Mensagempor JoséQuintas » 26 Jul 2016 14:54

O usuário usado pelo aplicativo tem direitos de criar banco de dados?
Na string de conexão está deixando sem nome de banco de dados pré-definido?
Precisa mesmo criar o banco de dados pelo aplicativo? não está confundindo banco de dados com tabelas?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Criar BD no MySQL usando ADO

Mensagempor MSDN » 26 Jul 2016 15:39

Boa tarde Quintas,

Sim, estou fazendo os testes como ROOT.
Para conectar com o MySQL, estou usando parte de exemplos que você postou :

  oConexao := MySqlConnection(v_campo_1,3306,""',v_campo_2,v_campo_3)
      oConexao:Open()
      oConexao:Execute("CREATE DATABASE MYDB")
      oConexao:Close()


Sempre acessei o MySQL usando xHarbour e Harbour, usando a LibMySQL.DLL, com o usuário ROOT e criando BD e tabelas, dessa vez estou testando o acesso via ADO para deixar o meu sistema aberto à qualquer SGBD, com menos código e mais fácil de manter.
Não estou confundindo tabela com banco...rsss, fica tranquilo, minha dúvida é só nesse ponto mesmo.
Continuo testando aqui, mas se tiver alguma sugestão, aceito !

Obrigado
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

Criar BD no MySQL usando ADO

Mensagempor MSDN » 26 Jul 2016 15:53

Resolvido !

Um velho ditado diz " A fome é triste "
Eu comecei a testar antes do almoço, não dava certo, fui almoçar, e agora no retorno, lendo com calma o que o Quintas falou, vi o erro, segue :

function MySqlConnection( cServer, nPort, cDatabase, cUser, cPassword )

          local cnConnection
         
          cnConnection:= win_OleCreateObject("ADODB.Connection")

          cnConnection:ConnectionString := "Driver={MySQL ODBC 3.51 Driver};Server=" + cServer + ";" + "Port=" + Ltrim( Str( nPort ) ) + ;
            ";Stmt=;User ID=" + cUser + ";Password=" + cPassword + ";Collation=latin1;" + ;
            "UseCompression;"
          /*
          cnConnection:ConnectionString := "Driver={MySQL ODBC 3.51 Driver};Server=" + cServer + ";" + "Port=" + Ltrim( Str( nPort ) ) + ;
            ";Stmt=;Database=" + cDatabase + ";User ID=" + cUser + ";Password=" + cPassword + ";Collation=latin1;" + ;
            "UseCompression;"
          */   
          cnConnection:CommandTimeOut    := 120 //seconds
          cnConnection:ConnectionTimeOut := 120 //seconds
         
          return cnConnection


Em um exemplo do Quintas, ele colocou a conexão com o MySQL dentro de uma função, que recebe 5 parâmetros, um deles o nome do BD. Quando já existe um BD criado, ok, mas quando não existe, se usar " Database="+cDatabase+"; mesmo passando em branco o parâmetro do BD, dá erro em tempo de execução, sem, cria o BD.
Ainda falta algumas coisas, como checar se o BD já existe ou não, criar as tabelas, checar se as mesmas já existem ou não também, e por ai vai, mas com a ajuda do Quintas e "prestando atenção", tudo ok.

Abraços
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro