Conceito
A utilização simultânea do Track of the day
em vários computadores funciona sem problemas. Quem pretender ver os mesmos dados em todos os computadores pode configurar os seus computadores em conformidade. Para tal, é necessário compreender como o Track of the day
gere os seus dados.
Requisitos
Importante:
Para que este cenário funcione, a versão 4.1
do Track of the day
é o requisito mínimo.
Restrições
Para que a base de dados possa ser sincronizada automaticamente com outros computadores, o Track of the day não pode estar em execução; caso contrário, os ficheiros da base de dados ficam bloqueados e não podem ser sincronizados automaticamente com outros computadores. Num cenário distribuído com vários computadores, só é possível trabalhar sucessivamente, nunca em simultâneo.
Perfil de utilizador
O requisito central para a instalação é a utilização de uma conta Microsoft gratuita. Os perfis de utilizador são normalmente criados na pasta C:\Benutzer\. Esta pasta é um alias para C:\Users\, pelo que ambos os caminhos funcionam. É criada uma pasta para cada perfil de utilizador.
- C:\Users\Elizabeth
- C:\Users\Frank
- C:\Users\John
Inicialmente, todos os perfis de utilizador têm a mesma estrutura de diretórios. Nela encontram-se pastas com os nomes Documentos, Imagens, Vídeos, etc.
Na primeira instalação, o Track of the day cria, no perfil do utilizador registado, na pasta Documentos, a subpasta «Track of the day». Nela são criadas outras subpastas, como, por exemplo, Cache, Exemplos, Ícones, etc.
Com a versão 4.0, foi introduzida uma base de dados baseada no Microsoft SQL Server 2019 LocalDB. Após a instalação, o Track of the day verifica se existe um SQL Server instalado. Se este não for encontrado, a instalação do SQL Server é iniciada automaticamente. Nesta fase, ainda não se vê nada do Track of the day, mas este está ativo em segundo plano. Após a instalação do SQL Server, é perguntado se se pretende criar uma nova base de dados para o Track of the day.
Base de dados
Esta base de dados é automaticamente armazenada pelo SQL Server na raiz do perfil do utilizador. São criados dois ficheiros: a base de dados propriamente dita e o registo de transações. Encontra-se mais informação aqui.
- C:\Users\John\TrackOfTheDay.GpxDataModel.mdf
- C:\Users\John\TrackOfTheDay.GpxDataModel_log.ldf
Armazenamento de dados
A gestão de dados do Track of the Day é híbrida. Isto significa que a base de dados do SQL Server é utilizada apenas como um diretório com referências a, possivelmente, milhares de ficheiros. Desta forma, a base de dados permanece muito compacta e rápida. No entanto, é possível que surjam inconsistências se forem eliminados ficheiros referenciados dentro da base de dados.
Vários computadores
Se trabalhar com vários computadores e utilizar a mesma conta Microsoft, o armazenamento de dados distribuído fica mais ou menos como ilustra o gráfico seguinte. Ao utilizar vários computadores, é importante compreender que o SQL Server LocalDB foi concebido para ser utilizado num único computador. Não está prevista a utilização em paralelo com vários utilizadores registados em computadores diferentes.

Sincronização
Para poder aceder à mesma base de dados a partir de vários computadores, todos os dados, sem exceção, têm de ser replicados. Isto inclui também a base de dados SQL. Para esta replicação, pode ser utilizado um software adequado. Em alternativa, também se pode utilizar o sistema gratuito Microsoft OneDrive. A Microsoft oferece a cada utilizador um OneDrive com 5 GB de espaço de armazenamento. É possível adquirir mais espaço de armazenamento através de uma subscrição paga.
Este gráfico mostra como deve ser a instalação. O OneDrive deve ser configurado de forma a que o perfil de utilizador utilizado seja idêntico em todos os computadores. Por isso, é necessário iniciar sessão em todos os computadores com a mesma conta Microsoft, caso contrário não funcionará!

Para que este sistema funcione, a base de dados do SQL Server tem de ser movida para o OneDrive.
O caminho tem, portanto, de ser alterado de
- C:\Users\John\TrackOfTheDay.GpxDataModel.mdf
- C:\Users\John\TrackOfTheDay.GpxDataModel_log.ldf
para
- C:\Users\John\Documents\Track of the day\Database\TrackOfTheDay.GpxDataModel.mdf
- C:\Users\John\Documents\Trilho do dia\Database\TrilhoDoDia.GpxDataModel_log.ldf
.
Ficará, por exemplo, assim:

Para poder utilizar uma base de dados SQL, é necessária uma ligação. Para estabelecer esta ligação, é utilizada uma chamada «connection string». A «connection string» é uma sequência de caracteres longa e complexa que contém o nome e a localização da base de dados, bem como todo o tipo de informações técnicas necessárias.
Para que o Track of the day encontre a base de dados na nova localização, é necessário criar uma «connection string» que difira da predefinição. Nas definições do Track of the day, existe a secção «Base de dados» para este efeito. Para não ter de criar você mesmo esta sequência de caracteres complexa, existe uma ajuda. Basta clicar no botão [ … ] e navegar até à base de dados que foi previamente movida para o perfil de utilizador.

Se tudo tiver corrido bem, será exibida esta mensagem:

A cadeia de ligação resultante tem aproximadamente este aspeto:
- data source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=’C:\Users\ansch\Documents\Trilho do Dia\Database\TrilhoDoDia.GpxDataModel.mdf’;initial catalog=TrilhoDoDia.GpxDataModel;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework
Após reiniciar a aplicação, a base de dados movida é localizada e utilizada com base na cadeia de ligação.
Se algo correr mal, é apresentada uma mensagem de erro como esta.

Resolução de problemas
As causas são diversas. Em caso de dúvida, contacte o nosso suporte. Uma cadeia de ligação alterada pode ser eliminada a qualquer momento nas definições. Se tiver destruído acidentalmente a base de dados, na próxima vez que iniciar a aplicação será perguntado se pretende procurar uma base de dados existente ou criar uma nova automaticamente.
Quando ocorrem erros, as causas são sempre diversas, especialmente num cenário como o aqui descrito.
Se a criação automática de uma nova base de dados não funcionar, muitas vezes o servidor SQL não está disponível. É possível verificar isso através de uma linha de comando.

Os comandos são:
- sqllocaldb i – Assim, pode-se verificar se o SQL Server está disponível
- sqllocaldb s – Iniciar o SQL Server
- sqllocaldb p – Parar o SQL Server
- sqllocaldb -? – Mostrar ajuda sobre a lista de parâmetros
