Busca de arquivos no linux
28/11/2005
0
[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
Posts
29/11/2005
Massuda
29/11/2005
Vinicius2k
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+
29/11/2005
Dopi
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
29/11/2005
Vinicius2k
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+
30/11/2005
Osocram
Eu tentei usar esses comandos.. mas non tive sucesso... provavelmente eles non aceitam IP apenas caminhos compartilhados
Dopi
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.
Clique aqui para fazer login e interagir na Comunidade :)