REFERÊNCIA DE OBJETO NÃO DEFINIDA PARA UMA INSTÂNC

ELMO01 27/06/2016 13:32:24
#464124
Boa tarde pessoal,

Estou com este problema quando tento acessar os meus bancos de dados via rede [Ô]Referência de objeto não definida para uma instância de um objeto[Ô], abaixo está o código de abertura do meu programa:

Dim StrConfi, ValCon01 As String
Dim dr As MySqlDataReader
StrConfi = [Ô]Server=[Ô] & Servidor & [Ô];User id=[Ô] & Usuarios & [Ô];password=[Ô] & Senhas & [Ô];port=[Ô] & Ports & [Ô];database=[Ô] & Bancos & [Ô];[Ô]
ValCon01 = [Ô]Select * from empregador[Ô]
Dim Conn As New MySqlConnection(StrConfi)
Dim Cmd As New MySqlCommand(ValCon01, Conn)
Conn.Open()
dr = Cmd.ExecuteReader
If dr.Read Then
...
endif

Onde;
StrConfi = Server=192.168.0.150;User id=root;password=pontecnica;port=3306;database=pontecnica;

Quando o sistema chega neste comando [Ô]Conn.Open()[Ô] é que se dá o erro.

Alguém pode me falar o que estou fazendo de errado nesta abertura para que aparece o erro?

Obrigado.
OMAR2011 27/06/2016 17:13:49
#464130
Use Server=Localhost no lugar de Server=192.168.0.150
para testar.
Usei este código e abriu aqui no meu notebook.
PROFESSOR 27/06/2016 20:40:42
#464139
Só uma pergunta: Com a string obtida, você conecta o banco de dados por meio de algum outro aplicativo, como um [url=https://www.phpmyadmin.net/[/url], por exemplo? Se sim, tente montar a rotina em um bloco trycast com tratamento para MySqlException e veja qual mensagem é retornada.

ELMO01 28/06/2016 08:17:59
#464156
Bom dia pessoal,

OMAR2011 o intuito de colocar um IP na abertura do arquivo é para que eu tenha acesso ao banco de dados alojados em um servidor, assim posso simplesmente instalar o sistema em qualquer máquina e a partir do IP do servidor acessar estes bancos de dados. Se colocar o LOCALHOST, o MYSQL SERVER vai se referir somente aquele computador e isto não quero, como á escrevi, quero acessar o servidor através do IP.

PROFESSOR - eu conecto os bancos de dados através do MYSQL SERVER utilizando o IP do servidor como descrevi para o OMAR2011.

Se alguém tiver mais alguma idéia de como posso acessar os bancos de dados através do IP, será bem vinda.

Obrigado,
XLEGENDARY 28/06/2016 09:23:34
#464159
ao invés de usar o ip do servidor, use o nome do host. Nunca terá problemas de conexão caso dê problemas com ip[ô]s.
Sobre o erro, ele é bem generico pode ser um nullpointerexception por exemplo. Se a linha do erro ocorre no open então provavelmente a porta não está liberada lá ou o ip não está sendo satisfatório pra conexão. é aquele tipo de erro que pode ser n coisas.
ELMO01 28/06/2016 10:48:28
#464168
XLEGENDARY, não entendi a sua resposta, vc pode me passar um exemplo??

Obrigado,
XLEGENDARY 28/06/2016 11:35:40
#464171
ELM,

O nome do host é o nome do computador, coloque ele na sua string de conexão.
Sobre as portas, tem que saber se seu pc está ouvindo realmente a porta certa (3306) ( netstat -a se não me engano no CMD) e saber se vc tem as permissões todas pra abrir a conexão até lá ( use o ping no servidor, verifique o usuario no mysql etc)

tem uma forma de certificar que seja isso, é usando o try/catch

ErrorCode
Errors
HelpLink
StackTrace
são alguns que te irão gerar o erro com a msg correta.

Se não me engano no macoratti tem como usa-los, por isso que falei que a msg é muito genérica.
por exemplo:


Ao declarar uma variavel fora do contexto de uma classe e você passar a instancia dela irá dar exatamente esse erro, então ao estarmos desatentos acabamos achando que o erro é outro
não sei por que diabos a microsoft colocou uma mensagem tão genérica pra especificar esses tipos de erros.
XLEGENDARY 28/06/2016 11:41:31
#464172
ps: Use o MySqlException como o professor ja citou, que o erro será retornado com a msg correta.
DAMASCENO.CESAR 28/06/2016 13:21:15
#464180
Resposta escolhida
StrConfi = [Ô]Server=192.168.0.150; Database=pontecnica; Uid=root; Pwd=pontecnica;[Ô]

tenta essa string de conexao
Tópico encerrado , respostas não são mais permitidas