Fórum Componente IbDatabaseIni #41457

10/01/2004

0

Atualizei meus componentes IBX. O componente IbDatabaseIni da palheta Interbase serve pra criar o arquivo Ini para acesso a base de dados? Se for como se usa esse componente, porque daí acho que seria interessante pra Rede!


Amilton/pr

Amilton/pr

Responder

Posts

10/01/2004

Afarias

|O componente IbDatabaseIni da palheta Interbase serve pra criar o
|arquivo Ini para acesso a base de dados?

SIM -- é uma espécie ´já pronto´ para este tipo de abordágem (guardar os parâmetros de conexão tipo caminho do banco de dados em um arquivo INI)


|Se for como se usa esse componente,

Ligue o componente ao IBDatabase, e defina o nome do arquivo INI (FileName)

Preencha as propriedades do DataBase no componente IBDatabaseINI (Database name, caharacter set, etc...), clique com o botão direito e selecione ´Write to INI´

apague os valores (se desejar) ... quando seu componente Database conectar (IBDatabase.Connected := True) ele automáticamente receberá os parâmetros do arquivo INI


|porque daí acho que seria interessante pra Rede!

Não entendi!


T+


Responder

Gostei + 0

12/01/2004

Amilton/pr

Fiz isso. Quando cliquei com o botão direito no componente em Write to Ini
o arquivo ini ficou assim:

192.168.1.11:\vigia\vigil.gdb
[Database Settings]
database=
user_name=sysdba
password=masterkey
sql_role=
lc_ctype=

Porém quando compilo o projeto dá um erro no componente IbDatabase na propriedade DatabaseName com a messagem ´Database name is Missing´ Já que deixei essa propriedade em branco, no entanto não sei onde vínculo o componente IbDatabase ao IbDatabaseIni para ler o arquivo INI que coloquei na propriedade FileName.


Responder

Gostei + 0

12/01/2004

Afarias

Vc vincula o IBDatabaseINI ao IBDatabase com a propriedade DATABASE do IBDatabaseINI.

e, o INI (não sei pq) está errado... deveria estar assim:::

[Database Settings] 
database=192.168.1.11:\vigia\vigil.gdb 
user_name=sysdba 
password=masterkey 
sql_role= 
lc_ctype= 



T+


Responder

Gostei + 0

13/01/2004

Amilton/pr

Fiz essa mudança na unha, continua dando a mensagem: ´Database name is missing´. Liguei o IbDatabeIni ao IbdataBase pela propriedade Database, deixei a propriedade Databasename do componente IbDatabase em branco e na propriedade DatabaseName do componente IbDatabaseIni eu não sei o que por já que o arquivo ini está direcionado com o caminho para o Banco de dados.

Agradeço pela ajuda!


Responder

Gostei + 0

15/01/2004

Amilton/pr

Ainda não consegui relacionar o componente IbDatabaseIni com o IbDatabase para ler o arquivo INI.


Responder

Gostei + 0

15/01/2004

Afarias

1-Crie um novo projeto no Delphi
2-Coloque 1 IBDatabase, 1 IBTransaction e 1 IBDatabaseINI no form
3-Ligue o IBtransaction ao IBdatabase e vice-versa
4-Configure LoginPrompt no IBDatabase para false
5-Ligue o IBDatabaseINI ao IBDatabase (propriedade Database)
6-Configure as opções de conexão no IBDatabaseINI (CharacterSet, DatabaseName, Password, SQLRole e UserName)
7-Defina o nome/caminho do arquivo INI no IBDatabaseINI (propriedade FileName)
8-Clique com o botão direito no IBDatabaseINI e selecione ´Write to INI´ no menu
9-Apague as informações de conexão (se desejar) no componente IBDatabaseINI
10-No evento OnCreate do Form coloque:: IBDatabase1.Connected := True;


rode o programa!



T+


Responder

Gostei + 0

16/01/2004

Amilton/pr

Fiz um novo Projeto. Até o passo 5 foi normal.
No passo 6 fiz:
CharacterSet = NONE
databaseName = Em branco, não sei o que por aqui
Password = masterkey
SQLRole = em Branco, tbém não sei o que por
UserName = sysdba

O arquivo Ini ficou assim:
[Database Settings]
database=192.168.1.11:\vigia\vig
user_name=sysdba
password=masterkey
sql_role=
lc_ctype=NONE

Passo 7 e 8 nornal.
9 - Não sei que informações de conexão que poderiam ser apagadas.
10- Blz.

Resultado: Mesma mensagem: ´ DataBaseName is Missing ´.

O que está errado nisso?


Responder

Gostei + 0

21/01/2004

Amilton/pr

AFarias, ainda não deu certo, gostaria que ajudasse!


Responder

Gostei + 0

21/01/2004

Afarias

|databaseName = Em branco, não sei o que por aqui

ai vc coloca sua ´string de conexão´, exemplo::

ip_do_servidor:c:\caminho\arquivo.gdb


T+


Responder

Gostei + 0

26/01/2004

Amilton/pr

Blz. Funcionou legal no próprio aplicativo, no entanto no outro dia em que abri o projeto e compilei deu a mensagem novamente ´Database name is missing´ embora eu não tenha feita nenhuma alteração, isto é, fiocu bom e depois deixou de funcionar. Isso tem solução?


Responder

Gostei + 0

26/01/2004

Neville Sanches

No componente IBDatabase, tente setar a propriedade AllowStreamedConnected para False, para que o DatabaseINI possa mudar a conexão.


Responder

Gostei + 0

26/01/2004

Amilton/pr

A propriedade AllowStreamedConnected já está assim. Veja bem, agora na propriedade DatabaseName do IbDatabase1 eu coloquei: 192.168.1.11:c:\vigia\vigil.gdb
e na propriedade databaseName do componente IbDatabaseIni1 está vazio e voltou a funcionar legal, mas tem a seguinte situação: Para cada projeto eu vou ter que compilar um executável novo para o IP da máquina? Já que se deixar a propriedade DatabaseName do componente IbDatabase1 em branco a mensagem: ´DatabaseName is Missing´.


Responder

Gostei + 0

26/01/2004

Neville Sanches

Você ativa a conexão em runtime ou compila o projeto já com a conexão aberta? Eu deixo no componente IBDatabase a conexão padrão que uso nos testes e depois no programa conecto em runtime, sempre funcionou.


Responder

Gostei + 0

27/01/2004

Amilton/pr

Tenho essa rotina no OnCreate do DataModule:

procedure TdataM.DataModuleCreate(Sender: TObject);
begin
try
Ibdatabase1.Connected:=true;
except
Showmessage(´Não foi possível realizar a conexão com o Banco de Dados . . .´);
end;
end;

Agora parece qu está funcionando. quando colocar em rede eu tenho que altar somente o arquivo .INI para o caminho do BD, é isso?


Responder

Gostei + 0

27/01/2004

Neville Sanches

É só isso que precisa fazer, só alterar o caminho do banco no INI e o resto ele faz sozinho.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar