Bom dia pessoal!
Não tenho muita experiência em Delphi e estou "apanhando" com uma aplicação
n-tier.

Estou usando conexão DBX com firebird.

O problema é que quando executo o cliente, o servidor deveria ser
automaticamente carregado, mas o servidor chega a ir pro Tray mas fica
travado e o cliente não termina de executar também.

Já tentei de tudo mas nada dá certo.
Não sei mais o que fazer, por isso estou recorrendo ao grupo.
Segue abaixo alguns trechos do código.




Grato,

Charlestown
Maringá-PR
-----------------------------------------------------------------------------------------------------------------

// DataModule ////////////////////////////////////////////////////////
constructor TDM1.Create(AOwner: TComponent);
begin
  inherited;
  SocketConnection1.Address := '127.0.0.1';
  SocketConnection1.ServerName := 'OdontoServer.rdmMain';
  ConnectionBroker1.Connected := True;
  if not ConnectionBroker1.Connected then
      ShowMessage('Não conectado!');
end;
/////////////////////////////////////////////////////////////////////////////////////////

// RemoteDataModule
////////////////////////////////////////////////////////
initialization   // uRDMMain
  TComponentFactory.Create(ComServer, TrdmMain, Class_rdmMain,
ciMultiInstance, tmApartment);
end.
////////////////////////////////////////////////////////

// Form do Servidor
////////////////////////////////////////////////////////
procedure TfrmConfigServer.FormCreate(Sender: TObject);
begin
  if FileExists(GetCurrentDir + '\OdontoDB.Ini') then
  begin
    ArqIni := TIniFile.Create(GetCurrentDir + '\OdontoDB.Ini');
    Try
      (*Texto := ArqIni.ReadString('OdontoDB', 'Database', '');
      for i := 1 to length(Texto) do
      begin
        if Copy(Texto,i,1) = ':' then
        begin
          edBDIP.Text := Copy(Texto,1, i - 1);
          edBDName.Text := Copy(Texto,i + 1, length(Texto));
          break;
        end;
      end;
      *)
      edBDArquivo.Text := ArqIni.ReadString('OdontoDB', 'Database', '');
      edBDUsuario.Text := ArqIni.ReadString('OdontoDB', 'User_Name', '');
      edBDSenha.Text := ArqIni.ReadString('OdontoDB', 'Password', '');
    Finally
      ArqIni.Free;
    end;
  end
  else
  begin
    gravaOdontoDB;
  end;
  if FileExists(GetCurrentDir + '\OdontoServer.Ini') then
  begin
    ArqIni := TIniFile.Create(GetCurrentDir + '\OdontoServer.Ini');
    Try
      edOSIP.Text := ArqIni.ReadString('Server', 'IP', '');
    Finally
      ArqIni.Free;
    end;
  end
  else
  begin
    gravaOdontoServer;
  end;
end;

procedure TfrmConfigServer.gravaOdontoDB;
begin
  ArqIni := TIniFile.Create(trim(GetCurrentDir) + '\' + 'OdontoDB.Ini');
  Try
    ArqIni.WriteString('OdontoDB', 'DriverName', 'Interbase');
    ArqIni.WriteString('OdontoDB', 'Database', edBDArquivo.Text);
    ArqIni.WriteString('OdontoDB', 'RoleName', 'RoleName');
    ArqIni.WriteString('OdontoDB', 'User_Name', edBDUsuario.Text);
    ArqIni.WriteString('OdontoDB', 'Password', edBDSenha.Text);
    ArqIni.WriteString('OdontoDB', 'ServerCharSet', '');
    ArqIni.WriteString('OdontoDB', 'SQLDialect', '3');
    ArqIni.WriteString('OdontoDB', 'ErrorResourceFile', '');
    ArqIni.WriteString('OdontoDB', 'LocaleCode', '0000');
    ArqIni.WriteString('OdontoDB', 'BlobSize', '-1');
    ArqIni.WriteString('OdontoDB', 'CommitRetain', 'False');
    ArqIni.WriteString('OdontoDB', 'WaitOnLocks', 'True');
    ArqIni.WriteString('OdontoDB', 'Interbase TransIsolation',
'ReadCommited');
    ArqIni.WriteString('OdontoDB', 'Trim Char', 'False');
  Finally
    ArqIni.Free;
  end;
end;
procedure TfrmConfigServer.gravaOdontoServer;
begin
  ArqIni := TIniFile.Create(trim(GetCurrentDir) + '\' + 'OdontoServer.Ini');
  Try
    ArqIni.WriteString('Server', 'IP', edOSIP.Text);
  Finally
    ArqIni.Free;
  end;
end;
////////////////////////////////////////////////////////


[As partes desta mensagem que não continham texto foram removidas]

Responder a