Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

echo "VINICIUS"

Delphi + mysql em rede

Recommended Posts

O problema é o seguinte:

 

tenho uma aplicação feita em Delphi com banco de dados

eu utilizo as fontes de drivers ODBC para me conectar ao servidor Mysql

 

para isso eu instalo o Driver 3.51 do mysql para Odbc e uso as ferramentas da paleta ADO do delphi para criar minha conexao com o servidor

agora preciso colocar este sistema para rodar em mais uma maquina e preciso compartilhar o banco de dados

 

Como devo fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

uai kara, te mandei por MP um exemplo...

 

aquela era a tela de configuração de conexão, nela você pode observar o local onde estão gravados os dados da conexão. Com isto, você precisaria implementar apenas uma forma de buscar as configs (acho que já constava no exemplo que te passei...)

 

Qualquer coisa, me procura em CarangaCity que se eu estiver com meu note na hora eu te mostro, ok?

 

ah, e atualize seu driver para versão 5.1, que mexe com coisa velha é museu mesmo kara ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ae cara beleza? agora que vii que ja tinha me respondido lá

olha só um detalhe q eu percebi é que na minha maquina eu tenho instalar além do mysql server, da fonte de driver 5.1 (já estou usando está atualizei pra ser compativel com o windows 7 ) tenho q instalar o appserver também e vi que os dados do banco de dados estão na pasta "data " do appserver

 

tipo: C:\AppServ\MySQL\data\ ;

é comum quando se tem as duas ferramentas instaladas ele ficar nesta pasta ao enves de

C:\Program Files (x86)\MySQL\MySQL Server 5.0\data ?

 

na aplicação tudo funciona normalmente mas nao sei se em rede isto pode interferer em algo

 

quanto ao codigo que me enviou eu encontrei a ddl que disse mas

onde devo aplicar ele? no form que contem os componentes ADO?

 

 

 

 

 

Registro          := TRegistry.Create;
 Registro.RootKey  := HKEY_CURRENT_USER;

 Registro.OpenKey('\Software\ODBC\ODBC.INI\Locadora', True);
 Registro.WriteString('Driver', GetEnvironmentVariable('programfiles') + '\MySQL\Connector ODBC 5.1\myodbc5.dll' );
 Registro.WriteString('DATABASE', edt_DataBase.Text);
 Registro.WriteString('SERVER', edt_HostName.text);
 Registro.WriteString('PORT', edt_Porta.text);
 Registro.WriteString('UID', edt_Login.text);
 Registro.WriteString('PWD', edt_Senha.Text);
 Registro.CloseKey;

 Registro.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources', True);
 Registro.WriteString('Locadora', 'MySQL ODBC 5.1 Driver');
 Registro.CloseKey;

 Registro.Free;
 MessageDlg('Dados gravados com sucesso!', mtConfirmation, [mbok], 0);
 ModalResult := mrOk;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sinceramente, me surpriente não ter ocorrido nenhum problema durante a instalação pois - teoricamente - você teria duas aplicações ouvindo a mesma porta, #IstoPodeArnaldo?

Tudo funciona normalmente pois provavelmente a outra instação do MySQL não foi iniciada, provavelmente por isto suas bases estão na pasta Data do AppServer. Se interfere em algo eu não sei, mas não concordo com isto não, já que vai usar o AppServer, remova a outra instalação do MySQL (Detalhe: é possível manter 2 instalações do MySQL em execução ao mesmo tempo, mas se não tiver um motivo que realmente justifique, não faça)

 

Sobre o AppServer: Pelo que ví, ele um daqueles instaladores AllInOne: Apache + PHP + MySQL. Eu pessoalmente não gosto, recomendo inclusive que você distribua apenas o MySQL. (Salvo casos onde você precisará do Apache e do PHP na rede, mesmo assim, recomendo instalação manual).

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, vou remover o Mysql server e trabalhar apenas com o appserver (eu utilizo ele por causa do PHPmyAdmin, pois trabalho muito com php ai faz falta) agora quanto ao script que me passou é no form que está os componentes ADO que devo utilizá-lo?

onde devo alterar as dll?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterar dlls?

 

Aquele código que postei é uma unit. Se você acessar o regedit e abrir a chave \Software\ODBC\ODBC.INI\Locadora do HKEY_CURRENT_USER ou do HKEY_LOCAL_MACHINE, você encontrará os alias que você criou no driver de conexão do ODBC. Dentro da chave do alias de sua base de dados tem um valor para o objeto Driver, ele aponta para uma DLLs, esta é a DLL que você precisa distribuir. A DLL pode ficar em qualquer pasta do seu computador, desde que o caminho esteja informada alí...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não ta dando certo.

Eu alterei fui manualmente no editor de registro e encontrei meu alias com os valores da minha conexao.

Mas e aí como eu prossigo? eu tentei alterar o caminho da dll para o caminho da que ta no servidor atraves da pasta que ta compartilhada na rede

 

não funcionou.

 

Tentei na opcao SERVER colocar o ip do servidor

nao funcionou

 

Tentei na opçao SERVER colocar além do ip do servidor o endereço do banco de dados juntos e tambem nada

 

está unit que você me mandou não estou entendendo como utilizá-la, pelo que vi posso fazer manualmente eh isso?

é a primeira aplicação que tento colocar em rede, ainda estou muito perdido nesta situação

 

valeuu,ate

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vamos novamnte:

 

O MySQL está rodando em qual máquina? na sua própria? se sim, então vamos usar o IP 127.0.0.1 (IP para localhost), certo? bom prosseguindo:

 

nas chave chave de registro para seu alias, você encontrar as "variáveis":

 

DATABASE : Nome da sua database no MySQL

Driver : Caminho para o arquivo DLL do Driver MyODBC

PORT : Porta para conexão ao MySQL, por padrão, 3306

PWD : Senha utilizada para conectar ao MySQL

SERVER : Endereço do computador com o MySQL, neste caso 127.0.0.1

UID : Login utilizado para conectar ao MySQL

 

Uma vez conhecido os campos da chave de registro, vamos ver como modificar estes dados. Para alteração de dados de registro, recomendo uma leitura no pequeno tiutorial que fiz para a Unidev sobre como Manipular o registro com Delphi: http://www.unidev.com.br/phpbb3/viewtopic.php?p=283045#p283045

 

Em cada computador onde seu software for rodar precisa existir estes dados e o Driver MyODBC. Antes de realizar a conexão com a base de dados, atualize a "variável" Driver informando o caminho para o arquivo DLL. Se não sabe onde colocar seu código para conexão com a base de dados, você pode usar o evento OnConnect do componente AdoConnection.

 

Na janela de configuração de conexão com a base de dados do seu aplicativo, você usará a classe TRegistry para alterar o valor das chaves acima citadas. Com os dados atualizados, tente realizar a conexão com a base de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nunca utilize esse componente, sempre utilizo o zeos e na pasta onde esta instalado o programa eu adiciono as dlls do mysql e assim consigo me logar normalmente.

 

Dependendo do seu programa, não seria viavel mudar de componente ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.