Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Criei uma aplicação no VS2008 com o VB e criei um Banco usando o SQL Express , porem durante a criação até o termino da aplicação o programa rodou certinho o acesso a banco estava certinho , porem agora preciso colocar esse aplicativo na Rede ( Em um Servidor de Arquivos , para que algumas estações acessem o mesmo .EXE e o mesmo .MDF ) porem quando copio a aplicação para um diretório na rede ( G: ) ele não permite que eu abra o banco quando eu executo a aplicação ele gera o seguinte erro:
An attempt to attach an auto named database for file
G:\DT\Sequencia\App_dados\Sequencia.mdf failed.
A database with the same name exists, or specified file cannot be opened,
or it is located on UNC share
Porem quando eu instalo o sql express e o .net framework em uma das estações que vou rodar a aplicação , quando copio local ele roda certinho agora quando eu copio para o diretório da Rede (G:) e tento executar apartir desta rede ele gera este erro acima .
Este servidor de arquivos tem instalado o linux red hat e compartilhamos com samba para as demais estações usando o Windows
Será que alguem poderia me ajudar preciso entregar essa aplicação ainda esta semana e não sei como resolver
grato
Rildo
Mas eu preciso instalar o SQL Express no Servidor . . . Mesmo ele sendo LINUX e é somente um servidor de Arquivos ?
Como faço para instalar o SQL Express neste servidor ?
O Sql Server pode ficar em qualquer lugar, desde que a máquina que tem a sua aplicação enxergue a maquina onde esta o Sql Server.
Abraços...
Ok mas não estou usando SQL Server e sim o SQL Express, porem eu quero colocar minha aplicação junto com o arquivo do banco.mdf na rede em um Servidor de Arquivos (na verdade uma unidade mapeada G:) que serve somente hospedar arquivos do escritorio, este servidor esta instalado com Linux Red Hat, e as estações com Windows.
Tem como instalar o Sql express neste servidor rodando o Linux Red Hat ?? Como ?
Sql Express é o Sql Server a diferença é que é free.
Esta dúvida você terá que tirar com o pesoal do Sql Server.
Abraços...
Rildo, pelo que li na net esse erro ocorre pq o usuário ASP.NET não tem permissão pra acessar a pasta onde o BD está.
Na estação onde vai rodar seu programa você tera q ter instalado a copia do SQL Express e dar permissão a esse usuario em seu banco de dados.
Pior que como você falou q o arquivo ta em um server linux não sei te dizer se vai dar certo pra funcionar esse programa seu.
Olá Rildo, acredito que a solução para seu problema será a instalação de um servidor com plataforma windows para instalação do SQL Server Express, pois quando você compartilhar o arquivo mdf na rede, o arquivo será bloqueado pelo primeiro usuário que estiver conectado ao banco de dados.
Seu servidor é virtualizado?
Atenciosamente
Obrigado Jader pela atenção . . .
Ok Vou ver se consigo arrumar uma maquina para colocar com Windows e instalar o SQL Express, porem tenho algumas duvidas
Eu vou ter que colocar meu programa junto com o Banco.MDF neste servidor (Windows) que ira ficar com o SQL Expres ?
Em vez de colocar somente minha aplicação no servidor do Banco (SQL) eu poderia colocar minha aplicação no servidor de arquivos Linux e direcionar o acesso ao banco para o servidor Windows que vai ter SQL, ou seja , deixar o programa e o arquivo.mdf(banco) separados ?
Como eu conseguiria fazer isso ?
O que você acha ?
Bem se eu puder colocar no Servidor de Arquivos , como eu teria que fazer com a minha string de conexão ? eu teria que mudar ?
E Nas estações eu terei que instalar o SQL Express completo ? você teria o link caso precise de algum client , existe algum client no SQL Express ?
Mais uma vez Obrigado pela atenção
Rildo
Olá Rildo,
Para solucionar seu problema, será necessário fazer a instalação de um servidor windows (com sistema operacional windows 2003 ou 2008 server), após isso você deverá instalar o SGBD (SQL Server Express) e então criar seu banco de dados.
No software você deverã modificar a connection string(http://www.connectionstrings.com/), indicando o servidor (IP/ ou nome do servidor) na rede para que os clientes possam encontrar o banco de dados.
O bom é você manter o software em cada máquina, com uma configuração que indique o endereço do banco de dados, assim você não tem o problema de utilizar o software via rede, o que irá ocasionar o travamento do arquivo e trafego excessivo na
rede.
Obs.: Não será necessário instalar o SQL Express nos micros (clientes).
Atenciosamente
Ok Meu amigo , Obrigado pela explicação
Fiz tudo isso instalei o SQL Express no 2003 habilitei o acesso TCP/IP com a porta 1433 e consegui conectar porem quando vou atualizar o meu banco aparece como somente leitura
saberia me dizer onde posso corrigir isso
minha string ficou assim : Return "Data Source=192.168.0.224,1433;Network Library=DBMSSOCN;AttachDbFilename=D:\BancoSeque\App_Dados\Sequencia_SP.mdf;User ID=sa;Password=123456;"
obrigado pela atenção e paciencia
Rildo
Visto que o arquivo está sendo aberto por várias pessoas na rede, o programa trava o mbf para escriva quando alguém abre o arquivo (seja pelo programa ou não).
Procure instalar um banco de dados SQL Express em um servidor e faça referência a instância do banco de dados
Att