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

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Ale SB
Usuário Nível 3
Usuário Nível 3
Mensagens: 201
Registrado em: 20 Jul 2004 17:30
Localização: Campo Grande / MS

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

Mensagem 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
Imagemr]
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem 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.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
Ale SB
Usuário Nível 3
Usuário Nível 3
Mensagens: 201
Registrado em: 20 Jul 2004 17:30
Localização: Campo Grande / MS

Mensagem 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
Imagemr]
Avatar do usuário
Ale SB
Usuário Nível 3
Usuário Nível 3
Mensagens: 201
Registrado em: 20 Jul 2004 17:30
Localização: Campo Grande / MS

Mensagem 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
Imagemr]
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Mensagem 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:

Avatar do usuário
Ale SB
Usuário Nível 3
Usuário Nível 3
Mensagens: 201
Registrado em: 20 Jul 2004 17:30
Localização: Campo Grande / MS

Mensagem 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
Imagemr]
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem 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:
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem 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. ***
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
Ale SB
Usuário Nível 3
Usuário Nível 3
Mensagens: 201
Registrado em: 20 Jul 2004 17:30
Localização: Campo Grande / MS

Mensagem 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
Imagemr]
Responder