Conectando e destruindo a conexão

Não é preciso ficar explicando tudo sobre MySQL, pois acredito que quem é programador já deve ter ouvido falar desse banco de dados, quem não souber nada ou quiser atualizar-se sobre esse SGBD pode ler uma matéria bem completa no Winkipedia: MySQL, enfim vamos começar nossos estudos utilizando o HMG com MySQL.

Em primeiro momento vou levar em teoria que você já tem o MySQL instalado em seu equipamento, senão tiver, uma maneira bem simples de tê-lo configurado e funcionando para você trabalhar é através da distribuição do WebServer Wamp Server, que vai instalar para você o Apache Server, PHP e também o MySQL, você não precisa ter tudo isto instalado apenas o MySQL é necessário, mas se conselho for bom, aconselho que deixe tudo ai. Você vai notar que poderá usufruir de muitos recursos em seu sistema através de um Server Web dentro da rede do seu cliente, enfim, depois veremos isso. A mais junto com o Server Web teremos a aplicação MyPHPAdmin,

MyPHPAdmin (Web reprodução)

excelente e completa ferramenta para administrar um Banco de Dados MySQL.

O MySQL diferente das tabelas DBF é uma aplicação Server que abastece uma aplicação Client, no caso sua aplicação HMG será o cliente desse banco de dados. Sempre que falamos de um banco de dados Client/Server é quase que normal precisarmos fazer conexão neste banco através de endereço, usuário e senha. No MySQL não é diferente, provavelmente se você não modificou em nada sua instalação do MySQL o seu usuário será “root” e sua senha será em branco, o endereço será “localhost”.

Diferente do DBF que abriamos as tabelas e trabalhavamos o tempo todo com elas e quando encerrávamos à aplicação fechávamos a tabela (o que não era prudente, mas bem mais fácil de fazer), no MySQL não é o ideal, devemos ter em mente que iremos trabalhar com um BD que estará distante, podendo estar na WEB e que o acesso à ele deve ser feito por sessões, e assim que terminarmos a operação daquela sessão o ideal seria fechar a conexão, para liberar o SGBD e também não corrermos o risco de ficar com uma “conexão quebrada” quando o SGBD não estiver mais disponível.

Digo isso baseado que um dia sua aplicação não estará nos domínios físicos de sua empresa, atualmente com o conceito de nuvem que estamos adotando em nossas empresas é comum termos nosso SGBD rodando em algum lugar virtual da WEB, então se falhar a “ponte” como fica nossa aplicação? Existem formas para tratar isso, não veremos agora, porém vamos ter o bom hábito de fechar a conexão sempre que terminarmos uma operação.

Então segue abaixo o código inicial do “main.prg” com função “main”, onde definimos as variáveis públicas, atribuímos valores de acesso ao banco de dados, nesse ínicio fazemos uma conexão com o SGBD se ela for possível destruímos a conexão e damos sequência ao programa, se não for possível fechamos nossa aplicação, pois sem o SGBD não dá para trabalhar.


#include
Function Main
   PUBLIC pcHostname, pcUser, pcPassword, pcDatabase, plLogin
   PUBLIC oServer := nil

   pcHostname := "localhost"
   pcUser := "root"
   pcPassword := ""
   pcDatabase := "BDdoSeuCliente"
   plLogin := .f.

   MySQL_Connect()

   if  !plLogin
      return nil
   endif

   MySQL_Destroy()

   .
   .
   .

Vou explicar abaixo a função MySQL_Connect, que aqui no nosso exemplo tem a função de criar uma conexão com o SGBD, ela é bem simples, pegamos a variável objeto “oServer” e atentamos criar uma nova conexão utilizando as variáveis que definimos como públicas lá em “Main”, após fazermos isso testamos se existe erro no objeto, se deu erro informo o erro e fecho a aplicação, se não existir erro significa que a conexão foi perfeita, então atualizo a variável booleana de controle e retorno ao módulo que chamou a função, neste caso o “Main”.


FUNCTION MySQL_Connect()

   oServer := TMySQLServer():New(pcHostname, pcUser, pcPassword )

   IF oServer:NETERR()

      MSGSTOP("Error connecting to SQL server: " +;
             oServer:ERROR()+chr(13)+chr(10)+;
             "Host: "+pcHostname+"",pcSistema)

      plLogin := .f.

   ELSE

      plLogin := .T.

   ENDIF

RETURN nil

Como havia dito acima é muito importante e um costume excelente “quebrar” ou destruir a conexão com o SGBD para que ele fique livre para fazer outras tarefas, lembre-se que ele é um Gerenciador não é exclusivo seu, ele precisa atender todos os clientes que precisarem dele, não vamos criar aplicações egoístas, isso será ruim para nós mesmos. Explicando a função abaixo, verificamos se a variável objeto já não está livre, se não estiver destruímos a conexão e limpamos o objeto.


FUNCTION MySQL_Destroy()

   IF oServer != nil

      oServer:DESTROY()
      oServer := nil

   ENDIF

RETURN nil

Vale lembrar que estamos falando de um verdadeiro SGBD então diferente das tabelas DBF que precisamos administrar cada operação, aqui não será assim, uma base bem estruturada e deixando todo o controle para o SGBD você terá uma aplicação rápida, simples, leve e sem dores de cabeça para você.

Sei que esse ínicio não é grande coisa, porém é algo que acredito ser muito importante, precisamos entender a importância de abrirmos uma conexão para cada sessão de operação que formos fazer e destruí-las logo em seguida, procure mais informações sobre isso na WEB será muito importante. Lembro também que aprender um pouco de SQL é também tão quanto importante, se não até mais. Facilitará nossas vidas.

Por enquanto é só meus amigos.

Até.

3 comentários em “Conectando e destruindo a conexão

Adicione o seu

  1. Olá, me chamo Maurício Ribeiro e gostaria de saber como conectar o Mini Gui com o SQL SERVER. No caso eu uso o SQL SERVER 2008 R2 e o 2012

  2. Infelizmente serei sempre seu embora ignorado critico a nunca ser respondido, eu entendo que trabalhar com SQL é ainda assustador até para mim. Faltam explicações, desde primeiramente a instalar e o que ter instalado em meu micro de trabalho em casa, e o que eu levo e instalo no cliente, e o que é feito para que na rede propria interna ou na rede fora da empresa sejam necessários procedimentos para quem as utilisaria. Quanto a abrir e fechar conexões isso todos sabemso, se tratando ou não de DBF ou SQL, problema é em qual máquina isso é aconselhavel? e porque temos que abrir se o proprio SGBD do MySql faz isso simplesmente uma unica vez na isntalação(pelo que estou vendo na imagem). E onde pegar esse ditos cujos instaladores? pq tudo que tentei ou é pago, ou é link quebrado. E quando se tratar de uma alteração no programa que eu desenvolvi? como faço para alterar sem quebrar as rotinas de trabalho já existententes? eu enviaria para uma rede toda que parem de usar o programa pq eu estarei mexendo nele? eu heim?
    agradeceria se pudesse responder ainda este ano caro mestre.

    1. Bom dia Marcos, gostei de receber sua critica, sempre gosto de criticas, pois elas norteiam o trabalho, sabe que critica para mim eh melhor que elogio, nao que nao goste de elogios.

      Mas vamos ao que interessa, eh bom ter recebido essa sua mensagem, pois nao havia me preocupado com isso imaginando que uma grande parcela ja sabe utilizar o MySQL, mas vendo essa duvida, vou regressar um pouco no ensinamento e ensinar como baixar as ferramentas, e como instala-las, depois como configura-las para instalar no cliente, e o que devemos copiar nas pastas.

      O MySQL eh gratuito, assim como Apache e PHP, entao fique tranquilo.

      Voce nao vai precisar ninguem parar de usar enquanto voce desenvolve, depois vou explicar o procedimento, mas voce pode ter um banco de desenvolvimento e outro de producao (empresa), isso seria o ideal, vou ensinar.

      Enfim, vou comecar desde o comeco. Qualquer coisa continue me informando, conto com voce.

Deixe um comentário

Acima ↑