instalação executaveis em rede

Delphi

07/12/2012

Terminei meu módulos todos em delphi 7 com firebird 2.5, estou fazendo uma pequena revisão, e em seguida vou instalar em um cliente, gostaria de saber quais os passos, que pasta compartilho ? Obrigado.
Carlos Cabral

Carlos Cabral

Curtidas 0

Respostas

Claudia Nogueira

Claudia Nogueira

07/12/2012

Com Firebird você não tem que compartilhar pasta nenhuma, o acesso é feito por TCP/IP.
Simplesmente escolha um servidor, se usar Firewall, libere a porta 3050.
Nos terminais tem que passar o caminho físico da base de dados para o componente de conexão, exemplo:

No onCreate do DataModule:

  try
    Base.Connected := False;
    Base.DatabaseName := '\\servidor\c:\meu_programa\dados.fdb'; //Pegar de alguma configuração, pode ser de arquivo ini.
    Base.Params.Values['user_name'] := 'SYSDBA';
    Base.Params.Values['password'] := 'masterkey';
    Base.Connected := True;
  except
    on E : Exception do
    begin
      Application.MessageBox('Ocorreu um erro ao tentar se conectar ao BD!','Erro',MB_ICONINFORMATION+MB_OK);
      Application.Terminate;
    end;
  end;


No projeto, no componente de conexão, você não pode deixar preenchido o campo Database.
Isso sempre tem que ser preenchido em tempo de execução, pois senão em todas as máquinas tem que ter o arquivo do banco de dados, para pelo menos abrir o software.
Instalar o Firebird em todas as máquinas é o mais recomendado.

Qualquer dúvida, pode falar.
GOSTEI 0
Carlos Cabral

Carlos Cabral

07/12/2012

Oi Claudinha. Na realidade a pergunta foi feita desta forma, porque eu queria entrar em contato com você. Pode ser via email mesmo. Mas o assunto é este mesmo. Eu gostaria de passar algumas informações sobre como montei inclusive o dbxconection.ini, e em que é esta meu sistemas, para que voce pudesse se possivel me orientar. Se for o caso eu transcreverei todas as situações aqui mesmo. Fica ao seu encargo de como fazer. Mas agradeço e muito, de coração mesmo todas as dicas que voce me deu até agora. Obrigado. Aguardo.
GOSTEI 0
Carlos Cabral

Carlos Cabral

07/12/2012

Com Firebird você não tem que compartilhar pasta nenhuma, o acesso é feito por TCP/IP.
Simplesmente escolha um servidor, se usar Firewall, libere a porta 3050.
Nos terminais tem que passar o caminho físico da base de dados para o componente de conexão, exemplo:

No onCreate do DataModule:

  try
    Base.Connected := False;
    Base.DatabaseName := '\\servidor\c:\meu_programa\dados.fdb'; //Pegar de alguma configuração, pode ser de arquivo ini.
    Base.Params.Values['user_name'] := 'SYSDBA';
    Base.Params.Values['password'] := 'masterkey';
    Base.Connected := True;
  except
    on E : Exception do
    begin
      Application.MessageBox('Ocorreu um erro ao tentar se conectar ao BD!','Erro',MB_ICONINFORMATION+MB_OK);
      Application.Terminate;
    end;
  end;


No projeto, no componente de conexão, você não pode deixar preenchido o campo Database.
Isso sempre tem que ser preenchido em tempo de execução, pois senão em todas as máquinas tem que ter o arquivo do banco de dados, para pelo menos abrir o software.
Instalar o Firebird em todas as máquinas é o mais recomendado.

Qualquer dúvida, pode falar.

Olá Claudinha. Quanto tempo heim. Hoje as coisas estão bem diferentes, preciso de uma ajuda sua se possivel. Como faço para passar valores de variaveis entre 2 executaveis ? Estou usando o comando WinExec, mas não consigo enxergar o valor da variavel e sim somente o nome, por exemplo: WinExec('teste2.exe codigousuario',SW_NORMAL);
quando o projeto TESTE2 é executado ao invés de enxergar o valor que esta dentro de codigousuario eu consigo ver o nome da variavel. Você pode me ajudar por favor ? Obrigado.
GOSTEI 0
Mcbatalha

Mcbatalha

07/12/2012

Tente passar os parâmetros desta forma:

Chamada := 'executavel.exe "' + 'valor do 1º parametro' + '" "' + 'valor do 2º parametro ' + '" "' + 'valor do 3º parametro ' + '"';
//utilize quantos parâmetros forem necessários
WinExec(Pchar(Chamada),sw_shownormal);


no executável que foi chamado (pode ser no onShow ou no onCreate
procedure TFrm_Principal_Cq.FormShow(Sender: TObject);
var i: Integer;
Parametro1, Parametro2, Parametro3 : string;
begin

for i := 1 to ParamCount do
begin
Case i of
1 : Parametro1 := ParamStr(i);
2 : Parametro2 := ParamStr(i);
3 : Parametro3 := ParamStr(i);
end;
end;
end;
GOSTEI 0
POSTAR