Clipper On Line • Ver Tópico - Testar conexão com vários IPs Mysql

Testar conexão com vários IPs Mysql

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Testar conexão com vários IPs Mysql

Mensagempor depaula.jau » 04 Set 2017 11:21

Meus caros, Bom dia!!!

Uso : Harbour MiniGUI Extended Edition 17.03 + BCC5

Eu tenho uma necessidade e gostaria de saber se algum pode me ajudar.

Tenho um servidor Linux com Mysql que acesso de duas formas:
192.16... Para acesso interno e
201.18... para acesso externo.

Pois bem, eu queria fazer um laço testeando os IPs na sequencia e verificando qual esta com acesso. Vou postar o código da forma com que eu tentei fazer para vcs entenderem a necessidade.

Pseudocódigo:

* // Procedure de Conexão com BD Mysql
Procedure ProcedimentoDeConexaoDB()
        LOCAL lConect
        WaitWindow('Aguarde!, Conectando-se ao Servidor:'+oHostName)
*       // Conecta ao banco mediante parametro
        lConect:=ConectaMySql()

       If !lConect
           BEGIN INI FILE "Parametros.ini"
              GET oHostName  SECTION "Conexao"  ENTRY "Servidor1"
           END INI
           frmPrincipal.STATUSITEM.Item(4):="Servidor1:"+oHostName+" ["+oDataBase+"]"
           lConect:=ConectaMySql()
       EndIf

       WaitWindow()
       If !lConect
            MsgInfo('Desculpe! Não foi possível se conectar ao servidor.')
       Quit
       EndIf
       Return
*----------------------------------------
* Função para Conectar na Base MySql
Procedure ConectaMySql()
         LOCAL cQuery, aListaBancos
         LOCAL lExiste:=.F.
*        // Verifica se já está conectado
         If oServer != Nil
            Return(.F.)
         Endif
*        // Abre Conexao com MySql
         oServer := TMySQLServer():New(oHostName, oUser, oPassWord )
         If oServer:NetErr()
            Return(.F.)
         EndIf   

*        // Cria uma lista de banco
         aListaBancos:= oServer:ListDBs()
*        // Verifica se o Banco já Existe
         FOR i := 1 TO Len( aListaBancos )
            If Lower( AllTrim( aListaBancos[i] ) ) == Lower( AllTrim( oDataBase ) )   // Pesquisa o                Banco em Letras Minusculas
               lExiste:=.T.
               Exit
            EndIf
         Next
*        // Se existe, Seleciona
         If lExiste
            oServer:SelectDB( oDataBase )
         Else
            MsgInfo("Banco de Dados não Instalado, consulte o Administrador","Conexão")
            Release Window All
         EndIf
         Return(.T.)


Um grande abraço

Marcelo de Paula
Avatar de usuário

depaula.jau
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 98
Data de registro: 15 Mai 2007 17:07
Cidade/Estado: JAU
Curtiu: 9 vezes
Mens.Curtidas: 14 vezes

Testar conexão com vários IPs Mysql

Mensagempor Itamar M. Lins Jr. » 04 Set 2017 13:14

Ola!

        // Abre Conexao com MySql
  oServer := TMySQLServer():New(oHostName, oUser, oPassWord )
   If oServer:NetErr()
       Return(.F.)
   EndIf


Basta ver o tipo de erro aqui, oServer:NetErr().
E tentar com outro IP.
Pode usar dois IFs ou o FOR NEXT entre outras formas
    // Abre Conexao com MySql
FOR N := 1 TO 2
  cIP := iif(n==1,"192...","2xx..")

  oServer := TMySQLServer():New(cIP, oUser, oPassWord ) 

   If oServer:NetErr()
       If N > 2
          return(.F.)
       endif
   EndIf

NEXT



Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6944
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 311 vezes
Mens.Curtidas: 505 vezes

Testar conexão com vários IPs Mysql

Mensagempor JoséQuintas » 04 Set 2017 13:35

Isso é pra testar o aplicativo dentro e fora da máquina de desenvolvimento?
Uso algo parecido com isto:

cServer := iif( IsMaquinaJPA(), "conexaoLocal", "conexaoRemota" )


E na função, faça do jeito que achar melhor:

FUNCTION IsMaquinJPA()

   DO CASE
   CASE GetEnv( "COMPUTER_NAME" ) == "MAQUINAJPA"
   CASE GetEnv( "USER_NAME" ) == "JOSEQUINTAS"
   CASE SerialHD() == "XXXXX"
   CASE File( "d:\harbour\bin\harbour.exe" )
   OTHERWISE
    RETURN .F.
   ENDCASE
   RETURN .T.
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: 18113
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 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