Firebird em Rede

Delphi

31/05/2004

Estou criando um aplicativo para acessar o Firebird em rede e gostaria de uma ajuda...
Como faço um Arquivo ini que vai receber o endereço IP + do Banco de dados... Gostaria de receber o corpo da criação do ini + como ligo ele ao database e Quais as demais configurações eu tenho que colocar para receber o caminho do database em Rede...

Obrigado


Supernova

Supernova

Curtidas 0

Respostas

Afarias

Afarias

31/05/2004

se usa IBX pode usar o componente TIBDatabaseINI, e caso não quira, um exemplo::


uses
  IniFiles;

function TFormX.GetDatabaseName: string;
const
  csTCP = ´¬s:¬s´;
var
  Server: string;
  DataFile: string;
begin
  with TIniFile.Create(´nome do arquivo.ini´) do
    try
      Server := ReadString(´database´, ´servidor´, ´localhost´);
      DataFile := ReadString(´database´, ´arquivo´, ´´);
    finally
      Free;
    end;
  Result := Format(csTCP, [server, DataFile]);
end;

procedure TFormX.OpenDatabase;
begin
  IBDatabase1.DatabaseName := GetDatabaseName;
  IBDatabase1.Connected := True;
end;




T+


GOSTEI 0
Supernova

Supernova

31/05/2004

Era isso mesmo que ei queria...
Só tenho algumas dúvidas...
Se não existir o INI ele vai criar....
Aonde que ele vai criar? Gostaria que fosse no diretorio do executavel...
Como é a mascara certinha que tenho que colocar no ini para ele reconhecer o banco...
Se tem como eu descubrir o IP da maquina servidora em tempo de execução e configurar o mesmo... a minha grande duvida se resume em como eu vou criar um instalador configurando automaticamente o banco para acessar o servidor... E como via codigo os clientes saberão qual é o servidor... e não pensará que ele mesmo é o servidor...
Pensei algo como criar duas instalações do sistema, uma cliente outra servidor... Na qual o cliente procuraria o banco no caminho ´ executavel + bd´ e se não encontra-se pediria o caminho via opendialog do banco ´ com a rede já previamente mapeada´ e salvaria o resultado do ini...
POrem pensei em varios problemas...
Por exemplo o OpenDialog não me daria o endereço do IP por ezemplo apenas o nome do servidor....

A.Farias... esta com certeza é a grande duvida e com certeza o grande paradigma para pessoas como eu que sairam do Piradox que corrompia mais só era manipular o Alias e o Net Dir... Por favor socorre nós...


GOSTEI 0
Afarias

Afarias

31/05/2004

|Se não existir o INI ele vai criar....

SIM


|Aonde que ele vai criar?

No caminho especificado (nome do arquivo.ini) ... se não for especificado um caminho, então será criado na pasta WINDOWS


|Gostaria que fosse no diretorio do executavel...

passe o caminho do executável então onde tem ´nome do arquivo.ini´, por exemplo::

with TIniFile.Create(ChangeFileExt(Application.ExeName, ´.INI´)) do
{...}


|Como é a mascara certinha que tenho que colocar no ini para ele
|reconhecer o banco...

Como assim :?: :?: :?:


|Se tem como eu descubrir o IP da maquina servidora em tempo de
|execução e configurar o mesmo...

NÃO (ou melhor +/- , mas não é boa idéia de qualquer forma!)


|a minha grande duvida se resume em como eu vou criar um instalador
|configurando automaticamente o banco para acessar o servidor...

Não vai, o mínimo q deve ser informado é o nome ou ip do servidor.


|E como via codigo os clientes saberão qual é o servidor... e não pensará
|que ele mesmo é o servidor...

Não saberá (via código)! Seu cliente deve ter esta informação.


|Pensei algo como criar duas instalações do sistema, uma cliente outra
|servidor... Na qual o cliente procuraria o banco no caminho ´ executavel
|+ bd´ e se não encontra-se pediria o caminho via opendialog do banco ´
|com a rede já previamente mapeada´ e salvaria o resultado do ini...

O Firebird não usa mapeamentos


|POrem pensei em varios problemas... Por exemplo o OpenDialog não
|me daria o endereço do IP por ezemplo apenas o nome do servidor....

O nome do servidor já é suficiente -- o problema maior é q, como disse, o IB não usa mapeamentos

---

Bom, infelizmente não tem como correr de informar o nome do servidor e caminho da base de dados.

Existem algumas as soluções de ALIAS do Firebird (ótima opção) ou com ferramentas de terceiros -- mas ainda assim, pelo menos o nome/ip do servidor tem de ser informado.

---

Uma outra opção, é colocar o INI compartilhado (e até os executáveis se desejar) de forma q definindo a configuração em um local, já sirva para todas as estações.


T+


GOSTEI 0
Supernova

Supernova

31/05/2004

Eu fiz o que vc falou com a função acima... mas não criou o .ini mandei procurar e nada... acompanhando por dentro do delphi... vi que ele entra na função... Lê e rtorna que não encontrou o banco...
O que esta errado?


GOSTEI 0
POSTAR