Busca de arquivos no linux

28/11/2005

Oi Pessoal....

[b:1179d5b298]Problema:[/b:1179d5b298]
Tenho um sistema q qdo executado ele tenta conectar no banco, tenho 2 arquvios: config.txt e config1.txt em cada um deles tenho um endereco diferente p o banco d dados ex:192.168.1.2:/home/samba/real.ib e no outro 192.168.1.2:/home/samba/real1.ib
E tenho um arquivo chamado ativo.txt onde ele teria os valores 0 ou 1
Serve p indicar se eu devo pegar o config ou o config1

Dae oq deve acontecer eh o seguinte eu tento conectar no primeiro... se non conseguir enton conectar no prox.

Motivos p non conectar, arquivo non existe, servidor fora do ar

[b:1179d5b298]Configuracao:[/b:1179d5b298]
Delphi 6, Firebird 1.5.2, SqlQry, DataSetProvider, SqlConnection, ClientDataSet

[b:1179d5b298]Teste:[/b:1179d5b298]
A chamada da configuracao do banco eh feita no evento BeforeConnect do SqlConnection
Dae qdo ele sai do evento.. q seria ele tentando conectar da o erro ´FALHA INESPERADA´, eu poderia pegar essa exception e mandar mudar o banco. Mas esta mensagem erro pod acontecer por vario motivos, enton non posso sempre q der essa msg eu mandar trocar o banco.

[b:1179d5b298]Sugestao[/b:1179d5b298]
Pensei enton em verificar se o arquivo existe
tentei usar o FileExists... mas non consegui fazer essa verificacao pois o servidor eh linux... Eu non posso deixar o caminho mapeado no windows. Tem como eu usar o comando FileExists p verificar um file no linux?
Poderia me passar um exemplo?
Existe outro comando q faca isso?
Alguma outra sugestao p esse problema sem verificar se o arquivo existe?

*-*-*-*-**
Obrigado.


Osocram

Respostas

29/11/2005

Osocram

:?: ninguem?


Responder Citar

29/11/2005

Massuda

Acho que você poderia simplesmente tentar abrir o arquivo (usando FileOpen ou AssignFile) e ver o que acontece.


Responder Citar

29/11/2005

Vinicius2k

Colega,

O fato de você estar informando o caminho ´local´ do arquivo na string de conexão, não quer dizer que o arquivo precisa estar visível às estações através de um caminho de compartilhamento. Logo, o arquivo não estando visível FileExists ou qualquer outra função de manipulação de arquivos irão falhar.

A única forma de você verificar se o arquivo de dados está disponível, seria incluir o caminho em um compartilhando do Samba, em que a verificação deveria ser feita com algo como ´if FileExists(´\\192.168.1.2\compartilhamento\arquivo_de_dados.ib´) then ...´, [b:ab8392007e]mas isto é uma péssima idéia em termos de segurança.[/b:ab8392007e]

T+


Responder Citar

29/11/2005

Dopi

Acredito que o que o Osocram está querendo é verificar se o servidor está disponível...

Vinicius, lembro que certa vez, vc me deu uma dica para usar o idTCPClient e tentar abrir a porta 3050... o que uso até hoje...
http://forum.clubedelphi.net/viewtopic.php?t=56767


Responder Citar

29/11/2005

Vinicius2k

Olá Dopi !
Com certeza, se detectar o servidor for suficiente para ele, é uma boa opção a sugestão que lhe dei na ocasião e que eu também utilizo.

Penso que o melhor que se pode fazer a fim de manter o nível de segurança do servidor. Além disso, verificar se o arquivo de dados está disponível não garante que o serviço do SGBD esteja OK.

T+


Responder Citar

30/11/2005

Osocram

Massuda
Eu tentei usar esses comandos.. mas non tive sucesso... provavelmente eles non aceitam IP apenas caminhos compartilhados

Dopi
Acredito que o que o Osocram está querendo é verificar se o servidor está disponível... Vinicius, lembro que certa vez, vc me deu uma dica para usar o idTCPClient e tentar abrir a porta 3050... o que uso até hoje... http://forum.clubedelphi.net/viewtopic.php?t=56767



Isso q o Dopi passou eh umas das coisas q eu estava procurando tbm.. eu jah tinha visto no forum mas non tava encontrando...

Mas o meu problema non eh so ver se o servidor esta online..

Por ex: se o cara colocar o nome errado no config.txt...
o Servidor vai estar on.. mas o arquivo non vai existir..

Vinicius2K: isso q vc passou eu tbm fiz.. mas non posso deixar essa area compartilhada.. por questoes de seguranca e tbm por non poder jogar ele no samba...

Obrigado pelas dicas...
Se tiverem mais ideias me passem por favor.

Qto a solucao enton so me sobrou uma... q eu considero sendo uma ´Gambi´
Vou pegar um SqlConnection e mandar conectar ele no OnCreate do DataModule
dae lah mesmo eu jah tentar tratar o erro e se der erro pegar o outro banco... e desconectar ele dnovo...
Dae qdo eu precisar realmente chamar ele... vai ser certeza q ele vai conectar.

Q eh na tela de login q eu busco todos os logins num ComboBox, se der erro na tela d login dae ele jah non preenche o ComboBox.


Responder Citar