Página 1 de 1

Colocar o sistema nos terminais..........

Enviado: 10 Ago 2007 16:19
por Ale SB
Blz galera....
To com o seguinte problema:

Tenho 4 Maquinas, sendo 1 Servidor e 3 terminais, o sistema será instalado em todas as maquinas(pq eu acho q o acesso fica mais rapido) e o BD(DbfCdx) ficará no Servidor...ate ai ok.

O Servidor tem 2 HDs, e o Sistema e o BD ficará no 2 HD.

cDrive:\SB_Sistemas\Gerenciador\Sistema.EXE
cDrive:\SB_Sistemas\Gerenciador\SB_Dados\*.Dbf

Usando desta forma:

cDir:= "\\Servidor\Backup (H)\SB_Sistemas\Gerenciador\SB_Dados"
SET DEFAULT TO &cDir
USE BANCOS NEW SHARED

Consigo acesso normal, por qq terminal...ate ai blz, poderia dizer q o problema esta resolvido, mas...........

Isso eh testando pela minhas maquinas....pra eu instalar no cliente...eu tenho q saber :
Qual o drive q ele vai instalar e o nome da Rede, certo ?!

Entao esta eh minha duvida, tem alguma funçao pra capturar automatico estas configuraçoes ?

Talvez com um Arq .Ini, de certo, mas, nao sei como usa-lo.

Alguem Trababalha assim ?

Agradeço a futura colaboraçao da galera !!!

@braços Ale

Enviado: 10 Ago 2007 18:02
por Maligno
Você pode usar um drive mapeado. Todo o meu sistema funciona no drive default (não uso SET DEFAULT). Inclusive os bancos são abertos com o caminho explícito, mas sem o drive. Quando chego no cliente, pouco me importa que drive é. Apenas crio o atalho para mudar e executar para o drive onde está o programa. A letra do drive eu vejo na hora. É muito mais fácil trabalhar assim, pois só preciso apontar todos os arquivos para o raiz de um drive qualquer.

Enviado: 10 Ago 2007 18:25
por gvc
Eu uso 3 meios distintos, conforme o caso.

1) No atalho, na linha de chamada, eu coloco a informação de onde esta o BD. Assim eu estou passando como parâmetro a informação.

2) Crio uma variável de ambiente em cada máquina, informando aonde esta o BD. Assim o sistema pode "pegar" o local do BD.

3) Crio um arquivo (XML) com as informações necessárias ao sistema junto com a cópia local. Assim eu coloco mais informações para o sistema trabalhar. Este é o mais complexo.

O .INI é para sistemas for Windows. Em clipper vc estaria fazendo uma adaptação do método 3.

Enviado: 10 Ago 2007 18:29
por Ale SB
Maligno, obrigado pela dica, mas, eu nao tenho muita experiencia em rede, veja c entendi direto:

NO SERVIDOR:

Meu sistema fica na Pasta SB_Sistemas\Gerenciador\Sistema .Exe
Meu BD fica na Pasta SB_Sistemas\Gerenciador\SB_Dados\*.Dbf

NO TERMINAL:
Meu sistema fica na Pasta SB_Sistemas\Gerenciador\Sistema .Exe
Eu mapeando a pasta onde esta meu BD no Servidor, fica assim:
S:\Gerenciador\SB_Dados

Entao, digamos q eu use o Set Default, ficaria assim:
Set Default To S:\Gerenciador\SB_Dados

Resumidamente foi isso q vc quis dizer ????

Algumas Curiosidades e duvidas :

-Eh possivel, existe alguma Funçao ou alguma maneira de Pelo Terminal saber o nome do Servidor e o nome do Drive do Servidor via codigo ???

-Como vc abre seus Arquivos ?


@braços Ale

Enviado: 10 Ago 2007 18:33
por Ale SB
gvc escreveu:Eu uso 3 meios distintos, conforme o caso.

1) No atalho, na linha de chamada, eu coloco a informação de onde esta o BD. Assim eu estou passando como parâmetro a informação.

2) Crio uma variável de ambiente em cada máquina, informando aonde esta o BD. Assim o sistema pode "pegar" o local do BD.

3) Crio um arquivo (XML) com as informações necessárias ao sistema junto com a cópia local. Assim eu coloco mais informações para o sistema trabalhar. Este é o mais complexo.

O .INI é para sistemas for Windows. Em clipper vc estaria fazendo uma adaptação do método 3.
A opçao de trabalhar com XML e .INI, seria otimo tb, mas, nao sei nem por onde começar com eles.

Caso vc possa dar mais algumas dicas, agradeço.....meu sistema eh em FW, xH.

@braços Ale

Enviado: 10 Ago 2007 18:55
por Maligno
eu nao tenho muita experiencia em rede
Capaz que eu tenha menos experiência ainda. De rede quero distância. Quando vou no cliente já está tudo certinho. É só criar os atalhos. :)
Como vc abre seus Arquivos ?
Eu monto o caminho completo do arquivo, com exceção do drive. Eu nunca, em lugar nenhum do programa, preciso me preocupar com caminho. Todos são explícitos. Faltando apenas a letra do drive. E quando vou no cliente, só preciso fazer o atalho de tal forma que, ao executar o programa, ele mude para um drive mapeado qualquer. Não tem mistério. E nunca deu errado. :)

Agora, quem vai mapear o drive do cliente é outra história. Eu sempre pego a coisa pronta. Nem com isso me preocupo.

Enviado: 10 Ago 2007 19:09
por Maligno
Detalhe: não crio nenhuma variável de ambiente. Só atalho mesmo. É o mínimo possível: um em cada máquina. Se eu já identifico no próprio programa qual é o caminho do arquivo (lembrando: sem o drive), não tem porquê ficar criando variável de ambiente pra dizer pro programa onde estão os bancos de dados.

Acho mais simples assim. Além de não dar trabalho nenhum, não corro o risco de ter que ficar 1 hora no telefone explicando pro sujeito como é que se cria uma variável de ambiente no DOS. E atalho é obrigação dele saber. :)

Se bem que, uma possível variável de ambiente poderia ser criada por um BAT. Mas é só uma divagação minha. Eu também não uso BAT. :)

Enviado: 10 Ago 2007 19:23
por dbsh
Boa noite,
como maligno falou usar um unidade mapeada é a melhor solução, você pode usar BAT no lugar de chamar diretamente o EXE, fazendo a verificação se a unidade esta mapeada, e usando simplemente o comando
[USE (arq_dbf) INDEX Indice] no seu sistema, este exemplo so te da uma ideia do que pode ser feito.

chk_rede.bat:

Código: Selecionar todos

@echo off

if exist f:\ goto exec

net use f: \\servidor\compartilhamento\sua_pasta
if not exit f:\ goto erro

:EXEC
rem a unidade F: passa a ser unidade padrão
f:
seu_programa.exe
goto fim

:ERRO
@echo ERRO, unidade F: não disponivel
pause
goto fim

:FIM
rem volta para unidade C:
c:


Enviado: 13 Ago 2007 10:35
por Ale SB
Agradeço a colaboraçao de todos vcs.....com as dicas postadas aki..consegui aprender mais um pokinho,e todas funcionam muito bem, mas, oq eu keria acho q nao tem jeito mesmo de fazer.

Eu keria estar no terminal, e usar alguma funçao q me retorne o Nome do servidor e nome do disco, pq eu kero fazer, uma rotina generica...c alguma funçao me retornasse essas informaçoes via terminal.....eu poderia...conctar ao servidor ...mapear...tudo via codigo......sendo assim....eu poderia instalar o sistema no cliente..sem me preocupar q eu devo configurar.

Acho q minha ideai nao eh ruim..né.


D qq forma agradeço a ajuda de vcs...brigadao mesmo!!!

@braços Ale

Enviado: 13 Ago 2007 13:53
por ederxc
Tem essa função aqui que tambem eu estou usando !

Código: Selecionar todos

para def
if  valtype(def)="U"
    def="C:"
endif
sdd=def+"\\tec1\d\sysetq\dbf"  
set defa  to &sdd


se passar o parametro no atalho ele vai procurar conforme o parametro se ñ passar nada valtype () for vazio , ele vai direto procurar em C:

Enviado: 14 Ago 2007 11:33
por gvc
- cle.ini na pasta windows
[arquivos]
local=e:\system\cle

[outros]
transf_out=e:\system\cle\trans_ou
transf_in=e:\system\cle\trans_in

- dentro do seu sistema. Definindo aonde vc vai abrir os arquivos.

alocal := getpvprofstring('arquivos', 'local', ' ', 'cle.ini')
if !empty(alocal)
set default to (alocal)
end

O nome do arquivo .ini vc escolhe.
O getpvprofstring(<bloco>, <propriedade>, <valor default>, <arquivo ini>) retorna uma string. Se não encontrar o bloco ou a propriedade, retorna o <valor default>. Se não encontrar nada, retorna uma string vazia.
No arquivo .ini vc coloca as informações necessárias ao seu sistema.

*** Só para constar, sua dúvida deveria estar na sessão fivewin. ***

Enviado: 14 Ago 2007 18:55
por Ale SB
gvc escreveu:- cle.ini na pasta windows
[arquivos]
local=e:\system\cle

[outros]
transf_out=e:\system\cle\trans_ou
transf_in=e:\system\cle\trans_in

- dentro do seu sistema. Definindo aonde vc vai abrir os arquivos.

alocal := getpvprofstring('arquivos', 'local', ' ', 'cle.ini')
if !empty(alocal)
set default to (alocal)
end

O nome do arquivo .ini vc escolhe.
O getpvprofstring(<bloco>, <propriedade>, <valor default>, <arquivo ini>) retorna uma string. Se não encontrar o bloco ou a propriedade, retorna o <valor default>. Se não encontrar nada, retorna uma string vazia.
No arquivo .ini vc coloca as informações necessárias ao seu sistema.
Amigo, agradeço nao soh a sua dica, como a de todos.
Eu estou acabando de montar a funçao aki, soh estou fazendo mais alguns ajustes, ela nao ficou como eu keria, mas, esta dando o resultado q eu buscava.
Terminado aki...eu post ae pra vcs...ok.....muito obrigado a todos.. q colaboraram.....
gvc escreveu:*** Só para constar, sua dúvida deveria estar na sessão fivewin. ***
Nao entendi o cometario, meu caro amigo....minha duvida estava relacionada à forma q eu iria abrir o BD (DBFCDX) em rede Cliente/Servidor.

Idependente do compilador ou da Biblioteca grafica q eu eutou usando eu vou usar os comandos e funçoes do Clipper p/ manipular eles.

Entao, eu acredito que eu nao postei errado...infelizmente..acho q vc fez um comentario equivocado........c eu tivesse perguntado; como se cria uma Tela com o FW ou como compilar com xH...eu te daria razao.......mas.........leia meus post......a unica coisa q eu comentei sobre Fw e xH.....foi informar sobre as ferramentas q eu estava usando......mas, nao perguntei nada sobre como usa-las.

Mas...se mesmo assim vc acha q meu Post esta em lugar errado ou c ele esta lhe incomodando, fique a vontate p/ pedir p/ o moderador, mover ele.....Ok.....

@braços Ale