Welcome to Sign in | Help

Re: Merge replication, join filter pe relatii m:n

  •  07-15-2008, 12:45 PM

    Re: Merge replication, join filter pe relatii m:n

    B_gd_n[ ]Sahlean:
    Cryogenic1981:
    ...
    Aici s-ar putea folosi o table valued function care sa intoarca o lista de ID-uri de Company, insa e o problema daca fac asa, adica la prima sincronizare totul merge ok, dar cand se shimba filtrul pe tabela Company (nu se sqhimba query-ul ci se doar se filtreaza diferit in functie de context), tabela CompanyRelations nu se mai filtreaza, ramane cu acelasi filtru.
    ...

    Trebuie initializata din nou subscriptia si apoi lansezi sincronizarea.




    Din pacate asta nu e o solutie pentru ca initializarea subscriptiei + transferul snapshot-ului dureaza minute bune, (10+) prin gprs. Filtrarea a fost creata pentru ca volumul de date la client e foarte mare fara nici un filtru aplicat (Problema de de spatiu pe pocket PC), dar si timpul in care se efectueaza o sincronizare e important. (Fara reinitializarea subscriptiei, timpul de sincronizare e de cateva secunde (10-20), pentru ca se transfera doar row-urile "delta" intre publisher si subscriber).

    Solutia actuala e una care nu-mi place foarte mult, dar functioneaza, si anume daca se filtrezz tabela Company in functie de anumite ID-uri, se includ automat si ID-urile de companie care au relatie intre ele.

    De ex daca exista urmatoarele row-uri:

    [Company]                                              [CompanyRelation]
    ID, CompanyName                                   CompanyID, CompanyRefID
    1   Company1                                          1                 3
    2   Company2
    3   Company3

    iar filtrul trebuie pus pe Compania cu ID = 1, se adauga automat in filtru si compania cu ID = 3, astfel incat atunci cand se replica row-ul (1,3) din CompanyRelation sa nu apara eroare de integritate referentiala, insa in acest fell am dus date in plus pe client (inutile).







View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems