Na verdade isso é mais uma dica do que um artigo. Vamos abrir um arquivo texto com configurações, ler estas configurações e aproveitá-las para a conexão com o banco.
Existem também componentes prontos para isso, porém eu tento sempre usar o mínimo de componentes externos nos meus sistemas. Outra coisa também que se utiliza é o registro do Windows ao invés de arquivo texto, mas eu ainda prefiro a simplicidade de abrir um arquivo texto.
O código fonte é bastante simples e fácil de entender, eu sempre deixo esse código no evendo Before Connect do componente de conexão com o banco.
procedure TFrmPrincipal.ConexaoBeforeConnect(Sender: TObject); var f:TextFile; h,p,base:String; begin // Verifica se o arquivo com // host do db existe AssignFile(f,'conexao.ini'); if not FileExists('conexao.ini') then begin { Se o arquivo de configuração não existir, o sistema vai criá-lo com o servidor 192.168.0.1, porta 5432-porta padrão do PostgreSQL e com o banco chamado database1 } try Rewrite(f); WriteLn(f,'host=192.168.0.1'); WriteLn(f,'porta=5432'); WriteLn(f,'base=database1'); finally CloseFile(f); end; end; try Reset(f); // Abre o arquivo { Aqui o sistema está lendo linha por linha, a primeira linha fica o hostname ou ip do servidor, na segunda a porta e na última o nome da base. No arquivo esses dados têm que estar exatamente nesta ordem. O nome do meu componente de conexão é "Conexao" e estou usando o Zeos. Outra coisa importante, os dados são lidos considerando que estão na posição de coluna correta, ex.: o host na coluna 6 } Readln(f, h); Conexao.HostName:=Copy(h,6,Length(h)-5); Readln(f, p); Conexao.Port:=StrToInt(Copy(p,7,Length(p)-6)); Readln(f, base); Conexao.Database:=Copy(base,6,Length(base)-5); CloseFile(f); except on e: Exception do begin { Caso não consiga abrir o arquivo, dá a mensagem de erro e fecha o sistema} ShowMessage('Erro ao abrir arquivo de '+ 'configuração. Erro:'+#10+#13+ e.Message); Application.Terminate; end; end; end;
Nenhum comentário:
Postar um comentário