Acesso a banco de dados dinamicamente

Delphi

27/10/2005

Caros amigos:

Tenho uma aplicação no qual utilizo como banco o Firebird. Uso para conexão o IBDatabase. Gostaria de saber como faço para fazer a conexão com o banco de forma dinamica, ou seja, tanto o banco como a aplicação ficará em uma estação que será o servidor, podendo tambem acessar o aplicativo. Fiz um arquivo .ini com os seguintes parametros:
[CONECTION]
Local=c:\scps\dados\SCPS.GDB
Remote=PRX_W98:C:\SCPS\dados\SCPS.GDB

Na estação/servidor (onde esta o banco e a aplicação) o acesso ao aplicativo esta normal, mas nas estações que acessam o aplicativo não funciona (não consegue achar o banco). Na carga do arquivo .ini implementei os testes abaixo:

procedure TDMSCPS.DataModuleCreate(Sender: TObject);
const
FileName = ´\DADOS\LBASE.ini´;
var
IniFile: TIniFile;
ServerNameLocal :String;
ServerNameRemote: String;
begin
IniFile:= TIniFile.Create(ExtractFilePath(ParamStr(0))+FileName);
try
ServerNameLocal:= Trim(IniFile.ReadString(´CONECTION´,´Local´,´´));
ServerNameRemote:= Trim(IniFile.ReadString(´CONECTION´,´Remote´,´´));
finally
IniFile.Free;
end;

if ((ServerNameLocal = ´´) and (ServerNameRemote = ´´)) then
Application.Terminate;
try
IBDBase.Connected:= False;
IBDBase.DatabaseName:= ServerNameLocal;
IBDBase.Connected:= True;
except
try
IBDBase.Connected:= False;
IBDBase.DatabaseName:= ServerNameRemote;
IBDBase.Connected:= True;
except
Application.MessageBox(´Banco de Dados não encontrado.´,´ERRO´,MB_ICONERROR+MB_OK);
FrmSCPS.Close;
Exit;
end;
end;

A concexão da banco esta definida como Remota.
Não posso passar um IP fixo, pois os mesmos são dinamicos.



Alguem pode me dar uma grande e valiosa dica para resolver tal problema de acesso nas estações.

Atenciosamente

Zekas


Zekas

Zekas

Curtidas 0

Respostas

Cabelo

Cabelo

27/10/2005

Colega :

Você não tem os IP´s certo, mas vc tem o host..

Você pode fazer uma batch para atualizar seu arquivo .ini, todas as vezes que vc for entrar no prgrama..

assim :

Quando o executável for inicializado, vc roda esta batch, que procura pelo host o IP do micro no momento da conexão.. aí vc atualiza o .INI.

Só há um problema, se o micro com o BD for reinicializado, vc perderá a conexão, e isto pode acarretar em problemas ao seu BD..

Seu servidor não tem IP Fixo?????

Se não tem, é melhor tê-lo e ativar o serviço de DHCP nele.. daí fica tudo mais fácil..


GOSTEI 0
POSTAR