Página 1 de 1
DOS ERROR 2 como evitar?
Enviado: 10 Out 2008 11:52
por juniorcamilo
Amogos mais uma vez eu to aqui com uma duvida.... como faço para saber c o local onde vou criar um arquivo existe... tipo estou com o executavel em maquina local e quero fazer um dbcreate na rede, como saber c a unidade referenciada esta ou nao acessivel e existe?
DOS ERROR 2 como evitar?
Enviado: 10 Out 2008 13:58
por Pablo César
É só procurar um determinado arquivo se existe.
IF FILE("G:\PASTA\ARQUIVO") => vai me retornar se existe ou não. Se você tiver certeza de que acessando a unidade, na pasta tal terá de ter o determinado arquivo_x, então é só ver ser está acessível. Você também pode abrir e criar um arquivo determinado arquivo em baixo nível. Se não retornou erro é, porque está acessível.
Re: DOS ERROR 2 como evitar?
Enviado: 10 Out 2008 18:21
por juniorcamilo
a duvida é assim ,... criar um arquivo que nao existe.. arquivos temporario... dbcreate("Z:\SISTEMA\ARQX",aEstrutura)....
DOS ERROR 2 como evitar?
Enviado: 10 Out 2008 18:50
por Pablo César
Acho que você não entendeu o que eu quis dizer. Veja este tópico que tratou sobre isso: viewtopic.php?f=1&t=3640&st=0&sk=t&sd=a&hilit=FOPEN#p38146
Então você primeiro tenta criar um arquivo em baixo nível, se ele criou, então você pode proceder com a criação do DBF caso contrário você dâ uma mensagem que não tem acesso a unidade ou pasta determinada.
De todas formas eu criaria uma pasta TEMP no C: (local) que é o meio mais rápido de acessar, isto é, não criaria o temporário dentro de uma unidade de rede.
Re: DOS ERROR 2 como evitar?
Enviado: 10 Out 2008 19:25
por Eolo
JuniorCamilo,
A função DBCreate tem 2 "problemas": primeiro, ela não dá nenhum retorno, então não dá pra saber se o arquivo foi ou não criado. Segundo, se o arquivo a ser criado já existir, ele será sobrescrito, sem aviso. Então, cuidado...
Moral da história: se vc tem certeza que o tal arquivo temporário não existe, rode o DBCreate. Depois, abra esse arquivo temporário e, em seguida, rode a função NETERR(): se ela retornar .T., deu certo; se retornar .F., não deu.
Exemplo:
Código: Selecionar todos
dbcreate("Z:\SISTEMA\ARQX",aEstrutura)
use z:\SISTEMA\ARQX new
if neterr()=.t.
wait "arquivo z:\SISTEMA\ARQX não criado!"
else
wait "arquivo z:\SISTEMA\ARQX criado e aberto!"
endi
quit
Re: DOS ERROR 2 como evitar?
Enviado: 11 Out 2008 07:00
por juniorcamilo
Olha em relacao a arquivo temporario em rede sim realmente fica mais lento é é uma doidura fazer, mas neste caso este arquivo vomos dizer assim temporario é o seguinte, é um arquivo que carrega a tela do terminal que esta em uso, ou seja, é uma funcao que desenvolvi, para ficaar vigiando os terminais trabalhando,,, ai tem que c gravar na rede, so que de x em quando este arquivo deve ser apagado ai logo apos deve c cria-lo novamente... como estou tentando mudar a forma de executar meu sistema, em x de executar por atalho na rede vou executar por atalho na maquina local, penso eu que assim vou ganhar mais rapidez e tratarei os erros de rede mais facil, pois aqui no Pará à muita queda de energia e muito operadores desqualificado... esta d+ dando problema em arquivo e indice...
em relacao a criar o arquivo primeiro, acho que nao da certo pois da a mensagem de erro DOS ERRO 2.. acho que o certo e primeiro tentar abrir c abrir um arquivo que sabemos que la existe, assim entao saberemos c existe o caminho e arquivo especificado,,, sei la tem hora que a jente nao pensa numa solucao tao simples assim, fica sempre querendo procurar chifre na cabeça de cavalo primeiro,rsrsrsrsr
Vale Eolo e tds novamente