locked
Deleted row from a particular user is not synced in other user using knowledge sync provider RRS feed

  • Question

  • We are using knowledgesync provider to delete the datas from client User1 and uploaded successfully and deleted data from client user 1 is not reflected in Client user2

    Scenario:
    there are two users(user1 and user2), both are using sqlce sdf database in the client system.
    User1 & User2 added 5 records each and synced successully .Now both the user1 and user2 datas are having 10 records.

    User1 has deleted a 2  rows in the particular table and uploaded successfully to the server. the rows are also deleted in the server side db.
    Now user2 is downloading the datas from the server. Now the
    Deleted the data from user1 is not deleted from user2 client sdf db.


    Please give me the solution.

    P.S: we are using dynamic filters in the knowledge sync provider

    Tuesday, June 5, 2012 7:57 AM

Answers

  • you should not be filtering on [base], if a record is deleted, then there is no corresponding record in the [base], the condition will fail. you should filter on [side] instead ([side] being the tracking table) 
    • Marked as answer by gk23 Wednesday, June 6, 2012 10:15 AM
    Tuesday, June 5, 2012 9:52 AM

All replies

  • when you say knowledge sync provider, are you using custom providers?

    what's the filter clause you have setup?

    Tuesday, June 5, 2012 8:02 AM
  • no, we are not using any custom provider. we are passing sqlcesyncprovider as knowledgesyncprovider. we have using the following filter clause and we are able to sync all newly added datas, we are not able to sync only  deleted row datas.

       SqlParameter param = new SqlParameter("@ProjectID", SqlDbType.Int);
       serverConfig.Tables["Customer"].AddFilterColumn("document_id");
       serverConfig.Tables["Customer"].FilterClause = "[base].[document_id]=@ProjectID";
       serverConfig.Tables["Customer"].FilterParameters.Add(param);

    Tuesday, June 5, 2012 8:51 AM
  • you should not be filtering on [base], if a record is deleted, then there is no corresponding record in the [base], the condition will fail. you should filter on [side] instead ([side] being the tracking table) 
    • Marked as answer by gk23 Wednesday, June 6, 2012 10:15 AM
    Tuesday, June 5, 2012 9:52 AM
  • thanks for your reply.
    Wednesday, June 6, 2012 10:15 AM