none
Sobre sincronização de dados SQL Server e Mobile e valores RRS feed

  • Pergunta

  • Bom, recentemente criei um tópico aqui com dúvidas sobre uma aplicação completa para ppc e desktop. Estou desenvolvendo um sistema de vendas para ppc e gostaria de contar com a ajuda do pessoal.
    Minha dúvida é a seguinte:
    Eu vou ter uma base de dados gigante. Os vendedores irão fazer vendas por região. O vendedor deverá ter acesso as vendas que ele já fez. Inclusive com a comissão que ele receberá. Os dados de venda e comissão são semanais. Ou seja, passou de uma semana, ele não vai mais precisar daqueles dados. Serão, a princípio, 15 vendedores. Eu Li no material que me foi indicado aqui mesmo, que existe o RDA e o Merge Replication. Pelo tipo de aplicação, eu vou optar pelo merge replication. Só que, pelo que eu percebi ele "mergeia" (palavra nova =D), todos os dados. Ou seja, eu preciso que o sistema "mergeie" apenas os dados do vendedor que se conectar. No material que eu vi, dizia que, para propósitos didáticos, não seria feito o filtering. Como eu poderia filtrar esses dados entre cada vendedor? O vendedor deverá receber em seu ppc apenas os dados dos seus clientes e informações sobre aquela semana.
    Eu peguei a seguinte informação num livro:

    Dynamic filters allow you to create a single publication and filter the returned data based on the connection properties from the replication object. To implement this method, you need to add a column to the published tables that identifies each customer to a driver. You can use the InternetLogin property of the replication as the value of this field. Then using a common SQL function such as SUSER_SNAME(), you can create a WHERE clause in the publication that looks like the following:

    WHERE DriverID = SUSER_SNAME()

    Now when you synchronize, you'll only get back the rows that have your login ID as the value in the DriverID column of the table.

    This method, dynamic filters, is easily supported and easier to maintain than the multiple publication method. If you have a large number of new drivers, all that is required is a change to the customer records' DriverID value to filter the data being sent out to the drivers.

     Note  When using dynamic filtering with SQL Server CE, you must set the optimize synchronization option when you create the publication or run the stored procedure sp_runmergepublication.

    Eu entendi mas não compreendi. Alguém teria um exemplo prático de como isso funciona? Eu já entendi o conceito de Merge Replication, inclusive com a criação dos Publications, Subscribers e etc. Só preciso ver agora como eu vou filtrar esses benditos dados.

    Só mais uma coisa: Eu não tenho idéia de quanto seria um sistema desses. A principio será um sistema rodando em rede padrão desktop e mais os 15 ppcs. Os vendedores vão todos os dias no escritório de manhã e a tarde para efetuar a sincronização. Quanto custaria um sistema desses? Pode parecer bobagem uma pergunta dessas mas eu não faço idéia de como cobrar isso. Obrigado pela ajuda de todos!
    quarta-feira, 29 de novembro de 2006 18:59

Todas as Respostas

  • Chamo a ajuda do Mestre José Antonio Farias! =D
    quinta-feira, 30 de novembro de 2006 17:15
  • (pode me chamar de Jalf..:D)

    Olha, você está pensando correto. Essa coluna a mais que é criada identifica as linhas que de fato serão atualizadas entre o device e o servidor. No caso, apenas as linhas cujo valor da coluna for igual ao da coluna no servidor serão sincronizadas.

    Não sei como é seu esquema de dados, mas pense nisso como um identificador do que deve ser enviado para cada device/usuário.

    Quanto ao preço, isso depende apenas de você..:D Só posso te adiantar que cobre algo para "manutenção" porque se isso for seu primeiro sistema móvel, você terá algumas pedras em seu caminho...

    quarta-feira, 6 de dezembro de 2006 02:28
    Moderador