Jump to content

Recommended Posts

Posted

Olá,

Tenho um programa que usa uma base de dados de access. Neste momento é usado localmente mas queria alterá-lo para poder ser usado em simultâneo em várias máquinas usando apenas uma base de dados. A base de dados iria estar guardada na máquina X e todas as máquinas A, B, C, .... iriam buscar e adicionar dados nessa mesma base de dados.

Sei que não é possível fazer uma ligação a uma base de dados de access que não esteja na máquina local e penso que Access também não irá funcionar muito bem com ligações simultâneas. Sendo assim, a minha questão é a seguinte:

- Qual a melhor base de dados a usar para o que pretendo e se existe alguma em que não seja necessário instalar software à parte ou que pelo menos possa ser instalado quando instalo a minha aplicação. Outro requisito é que  seja free.

Obrigado,

zephirus

Posted

Entretanto encontrei este tópico:

http://www.portugal-a-programar.pt/index.php?showtopic=13489

Segundo o user Weasel, uma boa ideia e penso que se aplica neste meu caso é usar PostgreSQL (Open Source e Free). Mas também se fala no SQLExpress. Sinceramente, SQL não é uma área onde esteja à vontade. Qualquer uma destas hipóteses vai de encontro àquilo que pretendo? Recomendam alguma (ou outra)?

Posted

Sei que não é possível fazer uma ligação a uma base de dados de access que não esteja na máquina local e penso que Access também não irá funcionar muito bem com ligações simultâneas.

É numa rede ?

O Access suporta até 255 ligações em simultâneo, o que provavelmente até é mais do que suficiente para ti, mas se possível utiliza outra base de dados porque oferece melhor performance e segurança, como o SQL (podes usar o SQL Express que é gratuito)

Posted

Olá,

Tenho um programa que usa uma base de dados de access. Neste momento é usado localmente mas queria alterá-lo para poder ser usado em simultâneo em várias máquinas usando apenas uma base de dados. A base de dados iria estar guardada na máquina X e todas as máquinas A, B, C, .... iriam buscar e adicionar dados nessa mesma base de dados.

Sei que não é possível fazer uma ligação a uma base de dados de access que não esteja na máquina local e penso que Access também não irá funcionar muito bem com ligações simultâneas. Sendo assim, a minha questão é a seguinte:

- Qual a melhor base de dados a usar para o que pretendo e se existe alguma em que não seja necessário instalar software à parte ou que pelo menos possa ser instalado quando instalo a minha aplicação. Outro requisito é que  seja free.

Obrigado,

zephirus

pois nao sei qual vai ser a tua utilização em relação a essa Bd mas eu no estágio meti a Bd num servidor e os computadores restantes estavam ligadas a essa mesma BD atraves de um atalho ligado ao servidor.. não sei se me fiz entender.. mas acho que tinha limitações.. nao podia estar mais que uma pessoa a usa-la mas nao tenho a certeza..

Posted

É numa rede ?

O Access suporta até 255 ligações em simultâneo, o que provavelmente até é mais do que suficiente para ti, mas se possível utiliza outra base de dados porque oferece melhor performance e segurança, como o SQL (podes usar o SQL Express que é gratuito)

Acho que ele fazia bem seguir com a BD em access visto que disse que nao estava muito dentro do assunto..

Posted

É numa rede ?

O Access suporta até 255 ligações em simultâneo, o que provavelmente até é mais do que suficiente para ti, mas se possível utiliza outra base de dados porque oferece melhor performance e segurança, como o SQL (podes usar o SQL Express que é gratuito)

Vou tentar explicar o melhor possível.

Para o programa que tenho neste momento e que está acabado, funciona assim:

- tenho vários PCs numa rede (rede A). Neste momento cada um desses PCs acede a uma base de dados local nesse PC e cada user modifica a BD como quer. O conteúdo da BD é variado mas um dos items é um valor boolean referente ao ping de várias outras máquinas que estão noutra rede (rede B)

O que pretendo:

- Em vez de cada PC ter a sua BD, pretendo ter apenas uma base de dados para todos os utilizadores. A base de dados estaria num dos PCs da rede B e os utilizadores da rede A acederiam a essa BD e poderiam modificá-la. Claro que o que pretendo é que possa haver acesso simultâneo ou pelo menos que não haja problemas de estarem várias pessoas a escrever na BD ao mesmo tempo. Se fosse possível em access, até pode ser mas se sql for melhor também posso mudar. O único senão é que eu não percebo muito disso e essas máquinas da rede B já têm o SQL2005 instalado para uso de outro programa e não sei se pode influenciar alguma coisa.

Posted

Vou tentar explicar o melhor possível.

Para o programa que tenho neste momento e que está acabado, funciona assim:

- tenho vários PCs numa rede (rede A). Neste momento cada um desses PCs acede a uma base de dados local nesse PC e cada user modifica a BD como quer. O conteúdo da BD é variado mas um dos items é um valor boolean referente ao ping de várias outras máquinas que estão noutra rede (rede B)

O que pretendo:

- Em vez de cada PC ter a sua BD, pretendo ter apenas uma base de dados para todos os utilizadores. A base de dados estaria num dos PCs da rede B e os utilizadores da rede A acederiam a essa BD e poderiam modificá-la. Claro que o que pretendo é que possa haver acesso simultâneo ou pelo menos que não haja problemas de estarem várias pessoas a escrever na BD ao mesmo tempo. Se fosse possível em access, até pode ser mas se sql for melhor também posso mudar. O único senão é que eu não percebo muito disso e essas máquinas da rede B já têm o SQL2005 instalado para uso de outro programa e não sei se pode influenciar alguma coisa.

`

é uma questão de meteres a BD num PC master (tipo servidor) e tentares ligar-te a ele atraves de um atalho nos outros PC's

Posted

`

é uma questão de meteres a BD num PC master (tipo servidor) e tentares ligar-te a ele atraves de um atalho nos outros PC's

Mas penso que não é possível ligar a uma base de dados access noutro pc, ou estou errado?

Posted

Mas penso que não é possível ligar a uma base de dados access noutro pc, ou estou errado?

se estão ligados em rede, fazes um atalho para a BD e ligas-te como tivesses no pc "servidor".

Posted

Mas penso que não é possível ligar a uma base de dados access noutro pc, ou estou errado?

Vou perguntar outra vez: É numa rede ou é através de uma internet/intranet ?

Se for um rede normal podes fazer sem qualquer problema, se um internet/intranet então não podes.

Posted

Então eu vou clarificar melhor: todos os PC's podem aceder a uma base de dados Access se essa estiver numa pasta partilhada do Windows acessível. Quantos podem escrever simultaneamente? UM.

Se o teu programa é escrito em VB.NET e usas os Dataset's e compainha a mudança para SQL Express é só uma questão de instalar o serviço na máquina, converter a base de dados, e definir a connection string apropriada na aplicação.

jpaulino: O que é uma rede normal? Conheco internet e intranets..

Tharis Fan ClubMay Tharis bless you
Posted

Vou perguntar outra vez: É numa rede ou é através de uma internet/intranet ?

Se for um rede normal podes fazer sem qualquer problema, se um internet/intranet então não podes.

É numa intranet. Os PCs cliente estão, por exemplo na rede 10.60.30.xxx e onde eu quero por a base de dados é a rede 10.40.20.xxx.

No meu programa actual, eu estou na rede 10.60.30.xxx e consigo pingar as máquinas da outra rede e o resultado do ping é um dos dados da base de dados. No novo programa, o servidor teria entre outros, esse dado de todas as máquinas da rede 10.40.20.xxx e eu na rede 10.60.30.xxx acederia a essa BD.

Posted

Então eu vou clarificar melhor: todos os PC's podem aceder a uma base de dados Access se essa estiver numa pasta partilhada do Windows acessível. Quantos podem escrever simultaneamente? UM.

...

Errado,

Como exemplo posso te dizer que tenho uma Base de Dados (mdb) em Access num servidor.

Tenho cerca de 20 utilizadores com BDs em (mde) a trabalhar simultaneamente e sem qualquer tipo de problemas...

Aqui existem é outras situações que tens de saber controlar.

1º Os dados devem ficar apenas numa base de dados (mdb) cada cliente deve ter uma BD (mde) com as tabelas linkadas.

Apenas tens de ter as BD bem estruturadas e teres controlo total de como os utilizadores inserem, actualizam apagam os registos.

Estou a falar de uma rede local e não de Internet ou Intranet...

Cumpts

Posted

Errado,

Como exemplo posso te dizer que tenho uma Base de Dados (mdb) em Access num servidor.

Tenho cerca de 20 utilizadores com BDs em (mde) a trabalhar simultaneamente e sem qualquer tipo de problemas...

Aqui existem é outras situações que tens de saber controlar.

1º Os dados devem ficar apenas numa base de dados (mdb) cada cliente deve ter uma BD (mde) com as tabelas linkadas.

Apenas tens de ter as BD bem estruturadas e teres controlo total de como os utilizadores inserem, actualizam apagam os registos.

Estou a falar de uma rede local e não de Internet ou Intranet...

Cumpts

Ou seja, no meu caso não poderei usar access, certo?

Posted

Ou seja, no meu caso não poderei usar access, certo?

Pode depender de vários factores.

Estas duas redes estão dentro da mesma localização física (por exemplo dentro do mesmo escritório) ?

Qual a velocidade de comunicação / rede que tens entre a duas?

Já exprimentas-te colocar a BD no servidor e fazer o link das tabelas?

Posted

Pode depender de vários factores.

Estas duas redes estão dentro da mesma localização física (por exemplo dentro do mesmo escritório) ?

Qual a velocidade de comunicação / rede que tens entre a duas?

Já exprimentas-te colocar a BD no servidor e fazer o link das tabelas?

Sim estão na mesma localização. Eu consigo aceder remotamente às máquinas da rede B. A comunicação é por Gigabit.

Não testei colocar a DB no servidor. Qual seria o path que teria de colocar? Ou é mais complexo que isso?

Isso não é uma intranet.

Ok. Isso quer dizer que é possível fazer o que pretendo ou mantém-se o problema de, por ser access, não poder ser acedida por várias pessoas ao mesmo tempo?

Posted

Sim estão na mesma localização. Eu consigo aceder remotamente às máquinas da rede B. A comunicação é por Gigabit.

Não testei colocar a DB no servidor. Qual seria o path que teria de colocar? Ou é mais complexo que isso?

Ok. Isso quer dizer que é possível fazer o que pretendo ou mantém-se o problema de, por ser access, não poder ser acedida por várias pessoas ao mesmo tempo?

Cria uma pasta no servidor, partilhas e a dás permissões aos utilizadores, depois copias a base de dados para essa pasta.

No VB alteras a connectstring para \\nomeservidor\nomedapasta\basededados.mdb

Posted

Cria uma pasta no servidor, partilhas e a dás permissões aos utilizadores, depois copias a base de dados para essa pasta.

No VB alteras a connectstring para \\nomeservidor\nomedapasta\basededados.mdb

Ah ok. Então é simples. A única coisa que me resta saber agora é se é possível fazer alterações na base de dados sabendo que há N pessoas clientes que o podem fazer. A base de dados não é muito complexa, o utilizador pode adicionar, remover ou alterar linhas.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.