Clipper On Line • Ver Tópico - Acessar MYSQL em outra porta # 3306

Acessar MYSQL em outra porta # 3306

Discussão sobre SQL

Moderador: Moderadores

 

Acessar MYSQL em outra porta # 3306

Mensagempor borisam » 21 Mar 2012 22:29

Boa noite. Algué já conseguiu acessar um servidor MySQL em porta diferente da padrão (3306) usando TMySQLServer():New( ?

Tenho um servidor atendendo na porta 3400, e o acesso normalmente através de diversas aplicações, mas não estou conseguindo via harbour. Fiz um pequeno programa de testes que funcionou bem na porta padrão mas quando altero para acessar outra porta não funciona.
Avatar de usuário

borisam
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 7
Data de registro: 12 Mar 2012 11:32
Cidade/Estado: Curitiba/Paraná
Curtiu: 1 vez
Mens.Curtidas: 0 vez

ACESSAR MYSQL EM OUTRA PORTA # 3306

Mensagempor borisam » 22 Mar 2012 13:39

Boa tarde. Apenas para informar, depois de algum trabalho de pesquisa, consegui acessar ao servidor MySQL usando a classe TMySQLServer conectando a uma porta diferente da porta padrão. Primeiramente incluí o parametro <número da porta> na chamada TMySQLServer():New(Endereço, Usuario, Senha, Porta) Em princípio não estava funcionando mas o problema não era a informação da porta e sim a senha do servidor que não estava correta. Descobri porque tentei em outro servidor cuja porta era diferente da padrão e que conectava normalmente.

Espero que esta informação ajude a mais alguém, pelo menos para atestar que o a classe funciona conforme o esperado. Agora vencido o problema inicial posso seguir no projeto.

Um abraço a todos.
Avatar de usuário

borisam
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 7
Data de registro: 12 Mar 2012 11:32
Cidade/Estado: Curitiba/Paraná
Curtiu: 1 vez
Mens.Curtidas: 0 vez

ACESSAR MYSQL EM OUTRA PORTA # 3306

Mensagempor fladimir » 23 Mar 2012 14:19

Legal... parabéns...

Poderia disponibilizar trecho do código como exemplo?

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

ACESSAR MYSQL EM OUTRA PORTA # 3306

Mensagempor borisam » 04 Abr 2012 21:57

Olá, desculpe a demora em responder.

Posso sim. A propósito, como é que o pessoal inclui os programas ? Tenho visto no fórum mas ainda não descobri como fazer.
Avatar de usuário

borisam
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 7
Data de registro: 12 Mar 2012 11:32
Cidade/Estado: Curitiba/Paraná
Curtiu: 1 vez
Mens.Curtidas: 0 vez

ACESSAR MYSQL EM OUTRA PORTA # 3306

Mensagempor borisam » 05 Abr 2012 13:15

Olá, já descobri como postar o código. :D

Também coloquei o código na seção de Dicas, Contribuições e tutoriais. Espero que ajude a mais alguém. uma matéria que me ajudou bastante além do exemplo da contrib foi esta : http://culikr.sites.uol.com.br/howmysql.htm

********************************************************************************
* ID       : TesteMySQL.prg                                                    *   
* OBJETIVO : Programa para testes de acesso ao MySQL com Harbour               *
* POR      : Boris A. Magaievski                                               *
* EM       : 22/03/2012 09:30                                                  *
*                                                                              *
* NOTAS : (1) Baseado na contrib do harbour e modificado para um exemplo mais  *
*             real                                                             *
*         (2) Testado para diversos servidores com portas diferentes da 3306   *
*         (3) Compilado com Harbour 3.0 na plataforma windows com BCC32 V 5.5  *
*         (4) Compilar com hbmysql.lib na pasta \hb30\lib\win\bcc              *
*         (5) Utilizada a classe TMySQL para acesso ao servidor                *
*         (6) informações sobre a classe TMySQL podem ser obtidas aqui:        *
*             http://culikr.sites.uol.com.br/howmysql.htm                      *
*                                                                              *
********************************************************************************                                                                       

#include "dbstruct.ch"
#include "inkey.ch"

STATIC oServer
STATIC oTable

procedure Main( cArg )

   LOCAL oQuery2, oRow, aStru
   LOCAL oQuery

   *****************************************************************************
   * Inclua os dados de acesso ao servidor                                     *
   * Nota : o endereço da porta é numérico                                     *
   *****************************************************************************
   
   LOCAL cServer    := '<nome ou IP do servidor>'
   LOCAL cUsuario   := '<usuario>'
   LOCAL cSenha     := '<senha>'
   LOCAl cBaseDados := '<base de dados>'
   LOCAL cTabela    := '<nome da tabela>'
   LOCAL nPorta     := 3400   
   LOCAL aTabelas   := {}

   SET CENTURY ON
   SET EPOCH TO 1960
   *****************************************************************************
   * Configurar p gina de c¢digo apropriada  para  cada  sistema  operacional  *
   * Nota : As requisições de codepage possibilitam trabalhar com vários  SOs  *
   *        e charsets pt_br ou seja, corrigem a acentua‡Æo.                   *
   *        Para p ginas de c¢digo usar PT850 ou PTISO conforme o config do SO *
   *****************************************************************************
   REQUEST HB_CODEPAGE_PTISO     
   REQUEST HB_CODEPAGE_PT850     
   Hb_LangSelect("PT")
   Hb_CdpSelect("PT850")
   *****************************************************************************
   * Configura‡Æo do ambiente do sistema                                       *
   *****************************************************************************
   SetMode(25,80)

   *******************************************************************
   * Estabelece a conexÆo com o servidor                             *
   *******************************************************************
   oServer := TMySQLServer():New( cServer, cUsuario, cSenha, nPorta )
   if oServer:NetErr()
      Alert( oServer:Error() )
      oServer:Destroy()
      return
   endif

   *******************************************************************
   * Seleciona o banco de dados                                      *
   *******************************************************************
   oServer:SelectDB( cBaseDados )
   if oServer:NetErr()
      Alert( oServer:Error() )
      oServer:Destroy()
      return
   endif
   
   *******************************************************************
   * Testando se a tabela existe na base de dados                    *
   *******************************************************************
   if ! Ascan(oServer:ListTables(), cTabela) > 0 
      Alert( 'A tabela '+cTabela+' nÆo existe nesta base de dados' )
      oServer:Destroy()
      return
   endif

   *******************************************************************
   * Selecionando dados da tabela                                    *
   * Nota : Altere a query conforme a sua base de dados              *
   *******************************************************************
   oTable := oServer:Query('SELECT CD_REPTE, NM_REPTE, DDD_1, FONE_1, '+;
                           'E_MAIL, DT_PROCESSAMENTO FROM representantes ')
   if oTable:NetErr()
      Alert( oTable:Error() )
      oServer:Destroy()
      QUIT
   endif   

   *******************************************************************
   * Navegando pelos dados da tabela                                 *
   *******************************************************************
   ? 'NAVEGANDO'
   oB := TBrowseSQL():New( 03, 01, 20, 79, oServer, oTable )
   oB:SetKey( K_CTRL_V, { | oB, nkey | DefProc( oB, nKey, cTabela ) } )
   do While .t.
           oB:ForceStable()
        if ( oB:ApplyKey( Inkey( 0 ) ) == - 1 )
           exit
      endif
      enddo

   *******************************************************************
   * Fechando a conexÆo                                              *
   *******************************************************************
   oTable:Destroy()
   oServer:Destroy()
     
return

function DefProc( ob, k, ctable )

    LOCAL op := ' '
    LOCAL orecord
    LOCAL aFDatas := Array( 6 )
    LOCAL cScreen := SaveScreen()
    LOCAL n
   
    cls
    SetColor( 'W/B,W/B+,W/R,B/W' )
    Dispbox( 00, 00, MaxRow(), MaxCol() )
    oRecord := oB:oQuery:GetBlankRow()
    for n := 1 to 6
       ? oRecord:FieldType(n)
       if oRecord:FieldType(n) = 'N'
          Afill( afDatas,0,n,1 )
       elseif oRecord:FieldType(n) = 'C'                                   
          Afill( afDatas,Space(oRecord:FieldLen(n)),n,1 )
       elseif oRecord:FieldType(n) = 'U'
          Afill( afDatas,CtoD('//'),n,1 )
       endif
    next
    inkey(0)
                                           
    @ 02,02 SAY 'CODIGO'    GET afdatas[ 1 ]
    @ 03,02 SAY 'NOME'      GET afdatas[ 2 ]
    @ 04,02 SAY 'DDD'       GET afdatas[ 3 ]
    @ 05,02 SAY 'TELEFONE'  GET afdatas[ 4 ]
    @ 06,02 SAY 'E_MAIL'    GET afdatas[ 5 ]
    @ 07,02 SAY 'DATA'      GET afdatas[ 6 ]
    READ
    @ 23,02 SAY 'Salva (S/N)?' GET op PICT "!"
    READ
    if op == "S"                                                           
       // oRecord := oB:oQuery:GetBlankRow()
       for n := 1 to 5
          oRecord:FieldPut( n, afdatas[ n ] )
       next
       oRecord:FieldPut( 6, Date() )
       oTable:Append( oRecord )
       if oTable:NetErr()
          Alert( oTable:Error() )
       endif
    endif
    RestScreen( ,,,, cScreen )
    oTable:Refresh()
    ob:RefresHall()
return( nil )

* Fim do programa
Avatar de usuário

borisam
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 7
Data de registro: 12 Mar 2012 11:32
Cidade/Estado: Curitiba/Paraná
Curtiu: 1 vez
Mens.Curtidas: 0 vez




Retornar para SQL

Quem está online

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