Componente IbDatabaseIni
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
Curtidas 0
Respostas
Afarias
10/01/2004
|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+
|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+
GOSTEI 0
Amilton/pr
10/01/2004
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.
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.
GOSTEI 0
Afarias
10/01/2004
Vc vincula o IBDatabaseINI ao IBDatabase com a propriedade DATABASE do IBDatabaseINI.
e, o INI (não sei pq) está errado... deveria estar assim:::
T+
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+
GOSTEI 0
Amilton/pr
10/01/2004
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!
Agradeço pela ajuda!
GOSTEI 0
Amilton/pr
10/01/2004
Ainda não consegui relacionar o componente IbDatabaseIni com o IbDatabase para ler o arquivo INI.
GOSTEI 0
Afarias
10/01/2004
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+
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+
GOSTEI 0
Amilton/pr
10/01/2004
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?
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?
GOSTEI 0
Amilton/pr
10/01/2004
AFarias, ainda não deu certo, gostaria que ajudasse!
GOSTEI 0
Afarias
10/01/2004
|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+
ai vc coloca sua ´string de conexão´, exemplo::
ip_do_servidor:c:\caminho\arquivo.gdb
T+
GOSTEI 0
Amilton/pr
10/01/2004
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?
GOSTEI 0
Neville Sanches
10/01/2004
No componente IBDatabase, tente setar a propriedade AllowStreamedConnected para False, para que o DatabaseINI possa mudar a conexão.
GOSTEI 0
Amilton/pr
10/01/2004
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´.
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´.
GOSTEI 0
Neville Sanches
10/01/2004
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.
GOSTEI 0
Amilton/pr
10/01/2004
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?
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?
GOSTEI 0
Neville Sanches
10/01/2004
É só isso que precisa fazer, só alterar o caminho do banco no INI e o resto ele faz sozinho.
GOSTEI 0