Fórum Acesso a banco de dados dinamicamente #300956
27/10/2005
0
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
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
Curtir tópico
+ 0
Responder
Posts
27/10/2005
Cabelo
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..
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..
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)