Liberar a porta 3050 do firebird e senha do banco?
Pessoal, pesquisei vários artigos na net, para liberar a porta 3050 do firebird 2.1. Uso Delphi 2010, mas não achei nenhum artigo que desse certo, gostaria de liberar a porta 3050 e ainda mudar a senha padrão do banco via código.
Osmar
Curtidas 0
Respostas
Marco Salles
22/03/2014
Pessoal, pesquisei vários artigos na net, para liberar a porta 3050 do firebird 2.1. Uso Delphi 2010, mas não achei nenhum artigo que desse certo, gostaria de liberar a porta 3050 e ainda mudar a senha padrão do banco via código.
Liberar de quem ??
Não entendi ... A Porta que o Servidor Firebird roda por padrão é a 3050.. Mas isto pode seralaterado
Porém em delphi anteriores a conexão ia direto ... Mas a partir do delph mais novos é necessário indicar além do Path do DataBase o Ip seguido da Porta
Para conexões Locais
127.0.0.1/3050:C:\Caminho\SeuBanco.FDB
Não sei se vc quer dizer como Liberar este processo ????
[]sds e espero ter sido útil
GOSTEI 0
Daniel Qualhato
22/03/2014
try
//grava a chave de registro no regedit
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('progBaruch\Baruchkey', true);
Reg.WriteString('Key', SENHA_CRYPINSTCryp02);
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.CloseKey;
//libera a porta do firebird pelo regedit
Reg.OpenKey('SYSTEM\Select', False);
CtrlSet := FormatFloat('000',Reg.ReadInteger('Current'));
Reg.CloseKey;
Reg.OpenKey('SYSTEM\ControlSet' + CtrlSet + '\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List', True);
if (not Reg.ValueExists('3050:TCP')) then
Reg.WriteString('3050:TCP','3050:TCP:*:Enabled:Firebird');
finally
Reg.CloseKey;
Reg.Free;
end;faça bom proveito
GOSTEI 0
Osmar
22/03/2014
Marco
O que eu quis dizer o Daniel fez, só que fiquei curioso com o que você postou, colocando um IP e também a opção de liberar a porta 3050, tentei fazer mas não consegui, pois uso um arquivo ini onde pego o IP do servidor e insiro nesse arquivo nas máquinas clientes, mas de acordo com o que você postou falta fazer mais alguma coisa?
O arquivo esta assim:
CONFIG.INI
INF_BD]
Caminho=C:\GE\Dados\DADOS.FDB
IP_Servidor=192.168.0.100
O que eu quis dizer o Daniel fez, só que fiquei curioso com o que você postou, colocando um IP e também a opção de liberar a porta 3050, tentei fazer mas não consegui, pois uso um arquivo ini onde pego o IP do servidor e insiro nesse arquivo nas máquinas clientes, mas de acordo com o que você postou falta fazer mais alguma coisa?
O arquivo esta assim:
CONFIG.INI
INF_BD]
Caminho=C:\GE\Dados\DADOS.FDB
IP_Servidor=192.168.0.100
GOSTEI 0
Marco Salles
22/03/2014
Que bom Osmar
Então eu utilizo DBX e escrevo meus arquivos Ini Assim
CONFIG.INI
[INF_BD]
Caminho=192.168.0.100\3050:C:\GE\Dados\DADOS.FDB
Então eu utilizo DBX e escrevo meus arquivos Ini Assim
CONFIG.INI
[INF_BD]
Caminho=192.168.0.100\3050:C:\GE\Dados\DADOS.FDB
GOSTEI 0
Osmar
22/03/2014
Bom dia Marco,
Meu código esta conforme abaixo, como devo fazer de acordo com sua dica?
Meu código esta conforme abaixo, como devo fazer de acordo com sua dica?
procedure TDmDados.DataModuleCreate(Sender: TObject);
var
iniConf : TIniFile;
sCaminho, sIPServidor : String;
begin
Ini := TIniFile.Create(ExtractFilePath(ParamStr(1)) + GetCurrentDir + '\Configurar.ini');
iniConf := TiniFile.Create( ExtractFilePath ( Application.ExeName) + 'Config.ini');
sIPServidor := iniConf.ReadString('INF_BD','IP_Servidor','');
sCaminho := iniConf.ReadString('INF_BD','Caminho','');
// Depois de Ler as Chaves, vou configurar o IBDataBase
IBDatabase.Connected := False;
IBDatabase.DatabaseName := sIPServidor +':'+sCaminho;
IBDatabase.LoginPrompt := false; // Para não pedir a senha do banco!
try
if not IBDatabase.Connected then
IBDatabase.Connected := True;
Except
ShowMessage( 'Não foi posssível conectar ao banco!' );
Application.Terminate;
end;
GOSTEI 0
Marco Salles
22/03/2014
Olá Osmar , eu não trabalho com IBX ,mas um comparativo com o modo que eu faço seria mais ou menos assim
iniConf := TiniFile.Create( ExtractFilePath ( Application.ExeName) + 'Config.ini');
sIPServidor := iniConf.ReadString('INF_BD','IP_Servidor','');
sCaminho := iniConf.ReadString('INF_BD','Caminho','');
sPorta := iniConf.ReadString('INF_BD','porta','');
// Depois de Ler as Chaves, vou configurar o IBDataBase
IBDatabase.Connected := False;
IBDatabase.DatabaseName := sIPServidor +'/'+sPorta+':'+sCaminho;
IBDatabase.LoginPrompt := false; // Para não pedir a senha do banco
........
[]sds
iniConf := TiniFile.Create( ExtractFilePath ( Application.ExeName) + 'Config.ini');
sIPServidor := iniConf.ReadString('INF_BD','IP_Servidor','');
sCaminho := iniConf.ReadString('INF_BD','Caminho','');
sPorta := iniConf.ReadString('INF_BD','porta','');
// Depois de Ler as Chaves, vou configurar o IBDataBase
IBDatabase.Connected := False;
IBDatabase.DatabaseName := sIPServidor +'/'+sPorta+':'+sCaminho;
IBDatabase.LoginPrompt := false; // Para não pedir a senha do banco
........
[]sds
GOSTEI 0
Osmar
22/03/2014
Olá Marco,
Fiz alguns teste mas não está dando certo, considerando o código que você passou, como ficaria então o arquivo config.ini?
outra observação em um dos exemplos você colocou antes da porta assim ' / ' e depois assim ' \ ' qual a forma correta?
Fiz alguns teste mas não está dando certo, considerando o código que você passou, como ficaria então o arquivo config.ini?
outra observação em um dos exemplos você colocou antes da porta assim ' / ' e depois assim ' \ ' qual a forma correta?
GOSTEI 0
Marco Salles
22/03/2014
Desculpe o correto é :/
Bem o seu arquivo Ini pode ficar com os parâmetros separados ,, IP , Porta , Caminho ...Desde que vc monte na Hora de passar para o DataBase
Ou o seu Arquivo Ini pode estar com uma ùnica Linha que ja contém o Ip a Porta e o Caminho . Ai pe so Carregar para o Database
Exemplo de meu Arquivo Ini Local
127.0.0.1/fds25_db:C:\DelphiProjetos\Delphi_Xe2\Nfe_\BANCO.FDB
0 fds25_db que aparece aqui esta definido no Arquivo Services do Windows dentre outros servidores instalados nesta máquina
C:\Windows\System32\drivers\etc
gds_db 3050/tcp
gds75_db 3055/tcp # InterBase Server
fds15_db 3150/tcp #Firebird1.5
fds21_db 3155/tcp #Firebird2.1
fds25_db 3160/tcp #Firebird2.5
Mas caso não tenha definido este Aliase vc definie explicitamente o Valor daPorta
Arquivo Ini
[DataBase]
PathFile=127.0.0.1/3050:C:\DelphiProjetos\Delphi_Xe2\Nfe_Eletronica\Dados\BANCONfe.FDB
espero ter sido claro , lembrando que isto aplico eu DBX
[]sds
Bem o seu arquivo Ini pode ficar com os parâmetros separados ,, IP , Porta , Caminho ...Desde que vc monte na Hora de passar para o DataBase
Ou o seu Arquivo Ini pode estar com uma ùnica Linha que ja contém o Ip a Porta e o Caminho . Ai pe so Carregar para o Database
Exemplo de meu Arquivo Ini Local
127.0.0.1/fds25_db:C:\DelphiProjetos\Delphi_Xe2\Nfe_\BANCO.FDB
0 fds25_db que aparece aqui esta definido no Arquivo Services do Windows dentre outros servidores instalados nesta máquina
C:\Windows\System32\drivers\etc
gds_db 3050/tcp
gds75_db 3055/tcp # InterBase Server
fds15_db 3150/tcp #Firebird1.5
fds21_db 3155/tcp #Firebird2.1
fds25_db 3160/tcp #Firebird2.5
Mas caso não tenha definido este Aliase vc definie explicitamente o Valor daPorta
Arquivo Ini
[DataBase]
PathFile=127.0.0.1/3050:C:\DelphiProjetos\Delphi_Xe2\Nfe_Eletronica\Dados\BANCONfe.FDB
espero ter sido claro , lembrando que isto aplico eu DBX
[]sds
GOSTEI 0
Osmar
22/03/2014
Boa Noite Marco,
Estive ausente uns dias, mas já estou na ativa, valos lá, fiz alguns testes o sistema roda blz mas a máquina cliente não consegue fazer o acesso ao servidor veja como está:
O arquivo CONFIG.INI está definido da seguinte forma:
O IbDataBaseName está configurado assim: 127.0.0.1/3050:C:\GE\Dados\DADOS.FDB, uma detalhe o IbDataBaseName esta com esse caminho tanto servidor como nas máquinas clientes é assim mesmo que você usa?
Estive ausente uns dias, mas já estou na ativa, valos lá, fiz alguns testes o sistema roda blz mas a máquina cliente não consegue fazer o acesso ao servidor veja como está:
procedure TDmDados.DataModuleCreate(Sender: TObject);
var
iniConf : TIniFile;
sPorta, sCaminho, sIPServidor : String;
begin
Ini := TIniFile.Create(ExtractFilePath(ParamStr(1)) + GetCurrentDir + '\Configurar.ini');
iniConf := TiniFile.Create( ExtractFilePath ( Application.ExeName) + 'Config.ini');
sIPServidor := iniConf.ReadString('INF_BD','IP_Servidor','');
sPorta := iniConf.ReadString('INF_BD','porta','');
sCaminho := iniConf.ReadString('INF_BD','Caminho','');
IBDatabase.Connected := False;
IBDatabase.DatabaseName := sIPServidor +'/'+sPorta+':'+sCaminho;
IBDatabase.LoginPrompt := false; // Para não pedir a senha do banco
try
if not IBDatabase.Connected then
IBDatabase.Connected := True;
Except
ShowMessage( 'Não foi posssível conectar ao banco!' );
Application.Terminate;
end;
O arquivo CONFIG.INI está definido da seguinte forma:
[INF_BD] IP_Servidor=127.0.0.1 Porta=3050 Caminho=C:\GE\Dados\DADOS.FDB
O IbDataBaseName está configurado assim: 127.0.0.1/3050:C:\GE\Dados\DADOS.FDB, uma detalhe o IbDataBaseName esta com esse caminho tanto servidor como nas máquinas clientes é assim mesmo que você usa?
GOSTEI 0
Osmar
22/03/2014
try
//grava a chave de registro no regedit
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('progBaruch\Baruchkey', true);
Reg.WriteString('Key', SENHA_CRYPINSTCryp02);
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.CloseKey;
//libera a porta do firebird pelo regedit
Reg.OpenKey('SYSTEM\Select', False);
CtrlSet := FormatFloat('000',Reg.ReadInteger('Current'));
Reg.CloseKey;
Reg.OpenKey('SYSTEM\ControlSet' + CtrlSet + '\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List', True);
if (not Reg.ValueExists('3050:TCP')) then
Reg.WriteString('3050:TCP','3050:TCP:*:Enabled:Firebird');
finally
Reg.CloseKey;
Reg.Free;
end;faça bom proveito
Daniel está dando erro nessa linha, eu mudo a senha do firebird manualmente, como faço nesse caso?
Reg.WriteString('Key', SENHA_CRYPINSTCryp02);
onde você coloca esse código, inseri no datamodulo mas estou tendo problemas.
GOSTEI 0
Nelson Santos
22/03/2014
Desenvolva softwares 3D em Delphi 7
www.3dsistemas.com.br
www.3dsistemas.com.br
GOSTEI 0