Efetuando pull dados do servidor para o cliente
O RDA geralmente é iniciado com o pull de dados de um Microsoft SQL Server para um banco de dados cliente do SQL Server Compact 3.5 (SQL Server Compact 3.5). Quando os dados são puxados de um servidor para um cliente, o pull é iniciado pelo SQL Server Compact 3.5. O SQL Server Compact 3.5 extrai os dados de um banco de dados do SQL Server e armazena esses dados em uma tabela, em um banco de dados do SQL Server Compact 3.5.
Para efetuar pull de dados do servidor, você pode configurar o RDA programaticamente em seu aplicativo. Ao configurar e iniciar uma operação pull usando qualquer uma das técnicas, você especificará o seguinte:
- O banco de dados do qual você deseja efetuar pull de dados.
- A autenticação do servidor Web necessária para conexão com o servidor Web.
- A autenticação do SQL Server usada
- As tabelas que serão copiadas e propagadas para o cliente
- Opções de pull, inclusive controle e uma tabela erros.
Controle
Um aplicativo pode controlar as alterações feitas em uma tabela do SQL Server Compact 3.5 definindo as opções de controle adequadas. O SQL Server Compact 3.5 controla todas as inserções, atualizações e exclusões.
Os aplicativos podem então chamar o método Push para propagar as alterações novamente para a tabela original do SQL Server.
As operações pull e push do RDA usam controle de simultaneidade otimista. O SQL Server não mantém os registros puxados bloqueados. Quando o aplicativo chama Push, as alterações feitas no banco de dados local do SQL Server Compact 3.5 são aplicadas incondicionalmente ao banco de dados do SQL Server. Isso pode fazer com que as alterações feitas por outros usuários do banco de dados do SQL Server sejam perdidas.
Use os métodos Pull e Push controlados quando os registros que você está atualizando forem particionados logicamente e os conflitos forem pouco prováveis. Por exemplo, os métodos Pull e Push controlados podem ser usados em um aplicativo de serviço de campo que controle cada técnico que tenha uma lista exclusiva de chamadas de serviço.
RDA_TRACKOPTION especifica se o SQL Server Compact 3.5 deve controlar alterações na tabela puxada. Especifique TRACKINGON ou TRACKINGON_INDEXES se desejar atualizar a tabela puxada no dispositivo baseado no Windows Mobile e, em seguida, enviar por push os registros alterados de volta para a tabela original do SQL Server. Quando TRACKINGON é especificado, são criadas restrições de PRIMARY KEY na tabela puxada. Quando TRACKINGON_INDEXES é especificado, as restrições de PRIMARY KEY e os índices adicionais existentes na tabela de servidor são criados na tabela puxada. Nos dois casos, o SQL Server Compact 3.5 controla todos os registros inseridos, atualizados ou excluídos da tabela local.
Dica
Será criado um índice somente se as colunas que o compõem forem puxadas. Nenhuma restrição de integridade referencial é criada na tabela puxada, pois as tabelas relacionadas podem ou não existir no banco de dados do SQL Server Compact 3.5. Elas devem ser adicionadas novamente pelo código no aplicativo.
Quando o aplicativo chama o método Push, o SQL Server Compact 3.5 usa as informações do controle de alterações para localizar os registros inseridos, atualizados e excluídos na tabela local do SQL Server Compact 3.5 e propaga essas alterações de volta para a tabela do SQL Server.
As seguintes restrições se aplicam quando RDA_TRACKOPTION é definido como TRACKINGON ou TRACKINGON_INDEXES:
Ocorrerá um erro se a instrução SELECT retornar um conjunto de registros não atualizáveis.
É necessário definir uma chave primária no conjunto de registros atualizável retornado pela instrução SELECT. A instrução SELECT pode referenciar uma exibição ou um procedimento armazenado, mas a exibição ou o procedimento armazenado deve referenciar apenas uma tabela e deve ser atualizável.
Quando TRACKINGON_INDEXES é especificado, os índices existentes na tabela do SQL Server que forem relevantes para as colunas especificadas em SQLSelectString são criados na tabela local do SQL Server Compact 3.5 especificada em LocalTableName.
Consulte também
Outros recursos
Como efetuar pull de dados usando o objeto RDA (programaticamente)