Roberto,
Para não ter que utilizar set default, set path etc, eu leio de um arquivo .ini todas as informações que preciso, monto os nomes completos dos arquivos e os utilizo a seguir.
A vantagem é que você pode ter várias informações nos arquivos .ini, diversos arquivos ini (para desenvolvimento, testes, homologação, produção etc) para diversos ambientes, sem que você deva se preocupar com detalhes de diretórios.
Tendo os nomes dos arquivos montados e guardados em variáveis globais (públicas ou não) você pode utilizá-los onde lhe for mais conveniente.
O esquema que eu utilizo está colocado abaixo. Espero que te ajude.
Um abraço,
Fernando
Arquivo .Ini:
[MeuSistema]
TabelasDir = C:\MeuDiretorio\DataBase\Tabelas
. . . (outras informações)
Programa principal:
. . .
Prog_SetUp ()
VerifyDbfs ()
OpenDataBases ()
. . .
Leitura do arquivo .ini:
Procedure Prog_SetUp
Public gTabelasDir
gIniFileName = "MeuSistema.ini"
gIniSecName = "MeuSistema"
. . .
LoadIniSec (gIniFileName, gIniSecName, @IniArrName, @IniArrValue)
gTabelasDir = SeekIniVar ("TabelasDir", @IniArrName, @IniArrValue))
gTabelasDir = AddBS (gTabelasDir)
. . .
EndProc
Montagem dos nomes (com caminho) das tabelas:
Procedure VerifyDBFs
Public Tabelas_Bancos , ;
Tabelas_Empresas , ;
Tabelas_Calendarios
Tabelas_Bancos = gTabelasDir + "Tabelas_Bancos"
Tabelas_Empresas = gTabelasDir + "Tabelas_Empresas"
Tabelas_Calendarios = gTabelasDir + "Tabelas_Calendarios"
. . .
EndProc
Abertura das tabelas:
Procedure OpenDataBases
Use (Tabelas_Bancos ) In 0 Alias Tabelas_Bancos
Use (Tabelas_Empresas ) In 0 Alias Tabelas_Empresas
Use (Tabelas_Calendarios) In 0 Alias Tabelas_Calendarios
. . .
EndProc
>Olá pessoal,
>
>estou usando o comando abaixo no meu programa principal:
>
>if version(2) = 0 &&Versão em tempo de execução
>m.caminho = (addbs(justpath(sys(16,0))))
>WAIT WINDOW m.caminho
>set default to (addbs(justpath(sys(16,0))))
>endif
>
>O problema ocorre quando tento executar o sistema de uma máquina da rede.
>
>Ele mostra o endereço certo na janela do wait window(no caso Z\cobra\), mas quando entra no sistema ele dá a mensagem de que não encontrou o banco, mas o caminho que ele mostra na mansagem é c:\cobra\aplica\dbfs\grupo.dbc, que é aonde fica o banco em tempo de desenvolvimento.
>
>Como fazer para que o sistema seja executado de qualquer máquina da rede???????
>
>Uso VFP 9.0
>_________________
>[ ]s,Roberto Barros - BH