MAPEAMENTO DE REDE
Bom dia. Pesquisei, mas não encontrei nada esclarecedor, principalmente porque não entendo muito do assunto.
Alguns clientes reclamam que meu sistema não funciona quando está mapeada a rede.
A estrutura do programa é assim:
Servidor
C:\myPrograma\
meu.EXE
meu.MDB
Estações
Atalho (mapeado) não funciona
Atalho (caminho direto)
C:\myPrograma\meu.EXE funciona
ou
\\ipxxx.xxx.xxx\myPrograma\meu.EXE funciona
No código do EXE sempre uso as chamadas assim:
Primeiro testo se o arquivo existe no lugar indicado:
[ô] aqui primeiro pego o path informado pelo cliente que fica gravado no registro do windows.
Public Function ArquivoExiste(sArquivo As String) As Boolean
On Error Resume Next
Dim x As Long
x = Len(Dir(sArquivo))
If Err Or x = 0 Then ArquivoExiste = False Else ArquivoExiste = True
End Function
ou em outros pontos do código assim:
[ô] aqui pego o path direto do EXE em uso que está fisicamente no servidor, mas em execução na estação (ativado pelo atalho).
App.path & [Ô]\imagens\logo.gif[Ô]
A pergunta é:
Essas chamadas podem impedir que o programa funcione quando a pasta do servidor está mapeada?
ou
O mapeamento no Windows não funciona dessa forma?
Importante:
Os clientes (TI) geralmente querem deixar mapeado, por ser mais fácil implantar nos terminais, além claro de ser mais seguro e não deixar exposto o path do servidor.
Porém só não tenho problemas quando eles instalam e alteram o atalho diretamente para o path do EXE no servidor, aà funciona perfeitamente.
Aguardo algum FAROL que ilumine esse universo ESCURO do Windows.
Abraços
Alguns clientes reclamam que meu sistema não funciona quando está mapeada a rede.
A estrutura do programa é assim:
Servidor
C:\myPrograma\
meu.EXE
meu.MDB
Estações
Atalho (mapeado) não funciona
Atalho (caminho direto)
C:\myPrograma\meu.EXE funciona
ou
\\ipxxx.xxx.xxx\myPrograma\meu.EXE funciona
No código do EXE sempre uso as chamadas assim:
Primeiro testo se o arquivo existe no lugar indicado:
[ô] aqui primeiro pego o path informado pelo cliente que fica gravado no registro do windows.
Public Function ArquivoExiste(sArquivo As String) As Boolean
On Error Resume Next
Dim x As Long
x = Len(Dir(sArquivo))
If Err Or x = 0 Then ArquivoExiste = False Else ArquivoExiste = True
End Function
ou em outros pontos do código assim:
[ô] aqui pego o path direto do EXE em uso que está fisicamente no servidor, mas em execução na estação (ativado pelo atalho).
App.path & [Ô]\imagens\logo.gif[Ô]
A pergunta é:
Essas chamadas podem impedir que o programa funcione quando a pasta do servidor está mapeada?
ou
O mapeamento no Windows não funciona dessa forma?
Importante:
Os clientes (TI) geralmente querem deixar mapeado, por ser mais fácil implantar nos terminais, além claro de ser mais seguro e não deixar exposto o path do servidor.
Porém só não tenho problemas quando eles instalam e alteram o atalho diretamente para o path do EXE no servidor, aà funciona perfeitamente.
Aguardo algum FAROL que ilumine esse universo ESCURO do Windows.
Abraços
Estava lendo um artigo antigo do Macorati, http://www.macoratti.net/acc_comp.htm sobre uso do banco no servidor. Só que no artigo ele aborda o uso do EXE sempre local nas estações e chamando o banco via uma variável do INI. Porém no meu caso o EXE fica centralizado no Servidor, e acredito que esse seja o problema com o mapeamento.
Se o EXE é carregado do servidor na memória da Estação para execução, aqui o mapeamento deve se perder, pois o app.path do EXE continua sendo no servidor, mas como foi ativado pelo mapeamento ele pode se perder. Será isso?
Como o path do banco fica gravado no registro do windows localmente, esse path talvez fique diferente do mapeado e quando o EXE usa o app.path, pode encontrar um caminho conflitante. A princÃpio é isso que eu consigo pensar, já que se não mapear tudo funciona.
Se o EXE é carregado do servidor na memória da Estação para execução, aqui o mapeamento deve se perder, pois o app.path do EXE continua sendo no servidor, mas como foi ativado pelo mapeamento ele pode se perder. Será isso?
Como o path do banco fica gravado no registro do windows localmente, esse path talvez fique diferente do mapeado e quando o EXE usa o app.path, pode encontrar um caminho conflitante. A princÃpio é isso que eu consigo pensar, já que se não mapear tudo funciona.
Amigo bom dia,
eu costumo fazer o seguinte se seu banco fica no servidor você deve informar o local do banco na string pelo ip ex:
\\ipxxx.xxx.xxx\banco.mbd
ai você pode fazer de 2 formas instalar o software direto nas maquinas ou instalar o software no servidor onde está o banco de dados e jogar o atalho do programa nas estações.
assim não tem problema se a unidade está mepeada ou não pq ele vai apontar para o banco que está na sua string de conexão \\ipxxx.xxx.xxx\banco.mbd.
abraço!
eu costumo fazer o seguinte se seu banco fica no servidor você deve informar o local do banco na string pelo ip ex:
\\ipxxx.xxx.xxx\banco.mbd
ai você pode fazer de 2 formas instalar o software direto nas maquinas ou instalar o software no servidor onde está o banco de dados e jogar o atalho do programa nas estações.
assim não tem problema se a unidade está mepeada ou não pq ele vai apontar para o banco que está na sua string de conexão \\ipxxx.xxx.xxx\banco.mbd.
abraço!
xará bom dia.
Instalar o sistema só no servidor não funciona, pois as DLLs e OCX precisam estar na estação, do contrário não funciona. Isso já foi tentado e o sistema dá problema sempre que precisa acessar os componentes. Clientes fizeram isso e até mapearam, deu erro e só depois de muitas perguntas và o problema e mandei instalar sempre localmente.
Sobre o mapeamento há duas questões:
1- é o acesso ao EXE que está na rede.
2- é o EXE depois de executado, acessar o banco que também está na rede. O caminho do banco é informado pelo cliente, mas fica sempre de modo absoluto e no registro do windows. Se o cliente mudar o banco, o sistema voltará a perguntar onde ele está.
Então o que ocorre é que ao tentar rodar o EXE pelo atalho mapeado da estação, o sistema inicia e fecha após o login sem nenhuma informação. Se não mapear funciona.
Instalar o sistema só no servidor não funciona, pois as DLLs e OCX precisam estar na estação, do contrário não funciona. Isso já foi tentado e o sistema dá problema sempre que precisa acessar os componentes. Clientes fizeram isso e até mapearam, deu erro e só depois de muitas perguntas và o problema e mandei instalar sempre localmente.
Sobre o mapeamento há duas questões:
1- é o acesso ao EXE que está na rede.
2- é o EXE depois de executado, acessar o banco que também está na rede. O caminho do banco é informado pelo cliente, mas fica sempre de modo absoluto e no registro do windows. Se o cliente mudar o banco, o sistema voltará a perguntar onde ele está.
Então o que ocorre é que ao tentar rodar o EXE pelo atalho mapeado da estação, o sistema inicia e fecha após o login sem nenhuma informação. Se não mapear funciona.
Olha luiz eu não sei como vc está fazendo este mapeamento, bom eu uso meus softwares da seguinte maneira:
ao se instalar o programa pergunta se o software será instalado cliente ou servidor.
se for servidor informa o caminho local se for cliente, é aberto a janela que mapeara a rede, onde se informa o csminho do banco.
bom isso só terá problema se a estrutura da rede mudar.
ao se instalar o programa pergunta se o software será instalado cliente ou servidor.
se for servidor informa o caminho local se for cliente, é aberto a janela que mapeara a rede, onde se informa o csminho do banco.
bom isso só terá problema se a estrutura da rede mudar.
No caso não há duas instalações, só um. Após instalar na estação de trabalho o EXE é excluÃdo e o atalho apontado para o que está no servidor.
Como expliquei acima, há dois caminhos, um do atalho para o EXE no servidor e outro que o EXE usa para abrir o banco.
Quando um cliente mapeia a rede, se o EXE estiver no servidor e o seu atalho apontando para o mapeamento não funcionar, mas se não houver mapeamento funciona.
Agora Se o EXE estiver local (estação) então funciona.
Como expliquei acima, há dois caminhos, um do atalho para o EXE no servidor e outro que o EXE usa para abrir o banco.
Quando um cliente mapeia a rede, se o EXE estiver no servidor e o seu atalho apontando para o mapeamento não funcionar, mas se não houver mapeamento funciona.
Agora Se o EXE estiver local (estação) então funciona.
Tópico encerrado , respostas não são mais permitidas