CONNECTION STRING

W8.LISBOA 20/10/2015 22:40:34
#452802
Ola pessoal,

Estou com a necessidade de usar minha aplicação em rede, e nesse ponto surgiu uma duvida aqui... como devo guardar o caminho do banco, (access) ?

Estou definindo o caminho da conexão no objeto My.Settings em cada PC, mas acredito que não seja a melhor opção.
JOAOBENEVIDES 20/10/2015 23:09:03
#452803
Bom Caro Amigo
W8-LISBOA. eu levaria em questao algumas coisa , se voce vai trabalhar em rede com access , acredito que seja um problema porque voce nao usa um SGB como Mysql,Sql Server ou outro , nas minha aplicao eu guardo o caminho no banco de dados encriptografados acredito que na minha solução seja mais adequada , eu uso Sql server como banco de dados

espero ter Ajudado
DS2T 20/10/2015 23:31:45
#452805
Seguinte cara.
Se você ler a documentação da Microsoft, verá que ela não recomenda o uso de Access trabalhando com multiusuários. Grandes chances de criar inconsistências e corromper seu banco de dados.

Respondendo sua pergunta.
Como é um arquivo access mesmo. Você pode considerar que o arquivo sempre vai estar num local fixo em relação ao programa. Assim evita a dor de cabeça com caminhos.
Se você for usar senha e usuário. Aí você usa o Settings mesmo. E se for querer algo seguro, criptografa.

Abraços
W8.LISBOA 20/10/2015 23:48:54
#452806
JOAOBENEVIDES, DS2T

Obrigado pelas sugestões.

Estou com o access por ter maior facilidade no manuseio, mais sei que preciso migrar urgentemente.
KERPLUNK 20/10/2015 23:52:48
#452807
Bem, se está no ponto de expandir sua aplicação para uso em rede, considere ao menos planejar para um futuro a médio prazo, uma conversão para um SGDB. Acredite Access apesar de ser eficiente e funcionar em rede, quando o uso dele é mais exigente você pode ter problemas sérios, incluindo corrupção do banco de dados, resultando em perda total de dados, o que é catastrófico para o cliente. Mas se for com poucos usuários e o uso não tão exigente, vai quebrar seu galho. Como já está usando .NET, sugiro fazer uso do App.Config. Simples e eficaz, apesar de eu sugerir algum tipo de criptografia para a string de conexão.
W8.LISBOA 21/10/2015 00:02:38
#452808
Citação:

:
Bem, se está no ponto de expandir sua aplicação para uso em rede, considere ao menos planejar para um futuro a médio prazo, uma conversão para um SGDB. Acredite Access apesar de ser eficiente e funcionar em rede, quando o uso dele é mais exigente você pode ter problemas sérios, incluindo corrupção do banco de dados, resultando em perda total de dados, o que é catastrófico para o cliente. Mas se for com poucos usuários e o uso não tão exigente, vai quebrar seu galho. Como já está usando .NET, sugiro fazer uso do App.Config. Simples e eficaz, apesar de eu sugerir algum tipo de criptografia para a string de conexão.



KERPLUNK,

No caso, deixaria a string em um arquivo criptografado fora aplicação?
KERPLUNK 21/10/2015 00:11:25
#452809
Não é bem um arquivo criptografado. App.Config, é um arquivo [Ô]anexo[Ô] a sua aplicação que contém toda e qualquer configuração que você desejar. Você pode deixar todas elas em texto normal, todas encriptadas ou encriptar só algumas, é você quem decide isso. E sim, ela fica fora da aplicação, mas como disse, você pode encriptar só a string de conexão, se quiser.
ACCIOLLY 21/10/2015 11:53:04
#452822
Resposta escolhida
Você pode colocar o access em rede, desde que a conexão que o seu programa faça com ele seja em um tempo de décimos de segundos! rsrsrs. Tipo assim, o usuário vai fazer uma pesquisa (SELECT). Nesse evento a consulta ao banco de dados é feita gerando um Open, assim que é terminada vc deve gerar um Close. As informações recuperadas devem ser guardadas na memória de uma matriz, ou grid, ou datatable, etc... Estou dizendo isso tudo porque muitos programadores (inclusive eu) no começo de carreira deixam a conexão sempre aberta. Aí é claro que vai dar BO se colocar em rede!

O caminho do banco você pode estar guardando em um arquivo externo. Mas como eu já falei em outros posts, guarde apenas o caminho do banco na rede. O que for imutável (Nome do Banco e a Senha), coloque na própria codificação do seu projeto. Guardar o caminho em um arquivo externo é uma boa opção pro caso de um dia houver mudança do ip do servidor, ou trocar a máquina servidora, etc...

Coloquei um pequeno exemplo de como vc fazer isso com um arquivo xml. Pode abrir o projeto no VS 2012 ou superior. Quando for executar provavelmente vai ter uma mensagem dizendo que não localizou o banco. Só coloque o diretório do banco (que está dentro da pasta Banco no projeto) no campo de texto quando solicitar e de OK.

Assim como os outros colegas, eu também te aconselho a migrar pra um SGDB mais confiável. Simplesmente por tudo isso que eles falarma! rsrsrsrs

Se optar pelo MySql, existe uma solução pra você converter access para MySql:

http://www.bullzip.com/products/a2m/info.php

Esse programa converte seu access em um arquivo SQL pra você importar no MySql. Se seu banco já tem registro eles vão estar nesse SQL também. Então quando fizer a importação não vai perder nada.
Quanto a instalação do MySql:
Ultimamente estou desenvolvendo em php e utilizo o WAMP Server pra fazer isso. Ele já vem com um servidor apache + php + MySql. E é extremamente fácil de instalar e utilizar, tanto na rede quanto localmente. Sem falar que é bem leve comparado ao Comunity que vc também pode estar baixando no Site do MySql.
Aí o que acontece, se vc desenvolve pra desktop, é só apontar o caminho para o IP do servidor (que é onde está o WAMP server instalado) e se necessário a porta dele (que geralmente é 3306). EX de string de conexão:

no Host
SERVER = 127.0.0.1; DATABASE=seuBanco;UID=seuUsuario;PWD=suaSenha;

ou
SERVER = localhost; DATABASE=seuBanco;UID=seuUsuario;PWD=suaSenha;


na máquina cliente
SERVER = 192.168.0.35:3306; DATABASE=seuBanco;UID=seuUsuario;PWD=suaSenha;


onde 192.168.0.35 é o ip do Host(Servidor) e 3306 é a porta para o banco.

Outra coisa importante que não posso deixar de falar é que pra desenvolver com o MySql no Visual Studio você deve baixar o Connector/net no site do MySql e no seu projeto, colocar o MySql.Data nas referencias.

Se ficou alguma(s) dúvida(s) com relação ao MySql dá um grito!
Qualquer coisa estamos aí
MOUSER 21/10/2015 14:27:16
#452829
já tentou rodar o sistema em um pc conectado na rede? Ex: PC 1 tem o sistema conectado na mesma rede que o PC2, pela rede usando o PC2 copiar o arquivo(Como atalho) e executar?
MOUSER 21/10/2015 14:29:40
#452830
na imagem que mandei, estou usando o computador identificado com servidor, o atalho se encontra no pc residencia, normalmente funciona quando a rede esta bem configurada.
W8.LISBOA 21/10/2015 18:12:17
#452858
Agradeço a todos, em especial ao ACCIOLLY por ter muito colaborado com a solução para minha duvida, quanto ao Mysql, domino o básico, inclusive utilizo nessa mesma aplicação uma conexão com um servidor web, onde faço o controle de uso da aplicação, etc.

Irei fechar o tópico mais tarde.
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas