zephirus Posted May 23, 2009 at 08:22 AM Report #266663 Posted May 23, 2009 at 08:22 AM 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
zephirus Posted May 23, 2009 at 08:27 AM Author Report #266664 Posted May 23, 2009 at 08:27 AM 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)?
zephirus Posted May 24, 2009 at 10:37 AM Author Report #266855 Posted May 24, 2009 at 10:37 AM Alguém me sabe orientar neste assunto? Queria uma opção que não implicasse instalar uma segunda aplicação além da minha que estou a desenvolver.
jpaulino Posted May 24, 2009 at 10:49 AM Report #266857 Posted May 24, 2009 at 10:49 AM 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)
vasco16 Posted May 24, 2009 at 10:50 AM Report #266858 Posted May 24, 2009 at 10:50 AM 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..
vasco16 Posted May 24, 2009 at 10:51 AM Report #266859 Posted May 24, 2009 at 10:51 AM É 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..
zephirus Posted May 24, 2009 at 11:15 AM Author Report #266861 Posted May 24, 2009 at 11:15 AM É 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.
vasco16 Posted May 24, 2009 at 11:33 AM Report #266863 Posted May 24, 2009 at 11:33 AM 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
zephirus Posted May 24, 2009 at 11:43 AM Author Report #266864 Posted May 24, 2009 at 11:43 AM ` é 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?
vasco16 Posted May 24, 2009 at 11:50 AM Report #266868 Posted May 24, 2009 at 11:50 AM 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".
jpaulino Posted May 24, 2009 at 11:51 AM Report #266870 Posted May 24, 2009 at 11:51 AM 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.
edsousa Posted May 24, 2009 at 12:00 PM Report #266874 Posted May 24, 2009 at 12:00 PM 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
zephirus Posted May 24, 2009 at 12:04 PM Author Report #266875 Posted May 24, 2009 at 12:04 PM 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.
Guest PauloR Posted May 24, 2009 at 01:01 PM Report #266890 Posted May 24, 2009 at 01:01 PM 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
zephirus Posted May 24, 2009 at 01:04 PM Author Report #266892 Posted May 24, 2009 at 01:04 PM 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?
Guest PauloR Posted May 24, 2009 at 01:15 PM Report #266897 Posted May 24, 2009 at 01:15 PM 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?
jpaulino Posted May 24, 2009 at 01:17 PM Report #266900 Posted May 24, 2009 at 01:17 PM É 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. Isso não é uma intranet.
zephirus Posted May 24, 2009 at 01:29 PM Author Report #266907 Posted May 24, 2009 at 01:29 PM 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?
Guest PauloR Posted May 24, 2009 at 02:19 PM Report #266912 Posted May 24, 2009 at 02:19 PM 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
zephirus Posted May 24, 2009 at 02:27 PM Author Report #266915 Posted May 24, 2009 at 02:27 PM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now