IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réplications SQL Server Discussion :

Problème réplication SQL Server et SQL Server CE (RDA)


Sujet :

Réplications SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : avril 2004
    Messages : 13
    Points : 16
    Points
    16
    Par défaut Problème réplication SQL Server et SQL Server CE (RDA)
    Bonjour,

    Etant nouveau sur ce forum, j'espère ne pas faire de gaffe (du genre pas assez de recherche, ...).
    Je dois réaliser une réplication d'une base de données sur un serveur SQL Server 2000/MSDE 2000 vers un serveur SQL Server CE sous Pocket PC (forcément) en RDA.
    J'éprouve quelques difficultés à répliquer la base sur le PDA, malgré les quelques tutoriels trouvés sur le net qui expliquent comment faire.
    En fait j'arrive à créer la base vide sur le PDA, la connexion pour le RDA semble bien se passer, mais la méthode Pull ne se passe pas bien.
    J'ai un message d'erreur "esql1.Message "An internal error occurred. [ID,,,,,]"" , esql1 étant une SqlCeException catchée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    try
    {
       rda = new SqlCeRemoteDataAccess();
       rda.InternetLogin = "SA";
       rda.InternetPassword = "MSPASS";
       rda.InternetUrl = "http://192.168.1.203/sqlce/sscesa20.dll";
       rda.LocalConnectionString = "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=\\My Documents\\immo.sdf";
     
       rda.Pull(
          "Personnes",
          "Select Nom,Prenom from Personnes",
          rdaConnect,
          RdaTrackOption.TrackingOnWithIndexes,"ErrorTable");
    }
    catch(SqlCeException esql1) 
    {
       err=esql1.Message;
    }
    Dans le SQLCE Query sur le PDA, j'ai bien la base vide, avec 3 tables (MSysConstraints, MSysObjects, MSysRDATombstone) et j'ai bien des tuples dans ma base sur le serveur "normal".

    Mes questions sont donc:
    - mais pourquoi que ca marche pas ?
    - MSDE permet-il de faire du RDA ? j'ai lu des articles contradictoires là dessus.

    Comme articles qui m'ont servi de base, il y a :
    http://www.ondotnet.com/pub/a/dotnet/2003/01/06/sqlce20.html?page=1
    http://www.codeproject.com/netcf/PocketPCwithSQLCE.asp?target=pocket%7Csql%7Cce
    http://www.ondotnet.com/pub/a/dotnet/2002/07/08/compactce.html
    et
    http://www.codeppc.com/dotnet/rda/rda.htm

    Je vous remercie d'avance pour votre aide.

    [edit]
    Ah oui, j'ai oublier de préciser que je code en C# sous Visual Studio.Net 2003, et que le serveur IIS semble bien configuré (j'accede à la dll dans le répertoire partagé pour la réplication).
    J'espère ne pas m'être gourré de section du forum.

  2. #2
    Membre averti
    Inscrit en
    août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    Essaye ce code pour avoir une erreur plus parlante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    // Reference the .NET Compact Framework Data Provider for SQL Server CE.
    using System.Data.SqlServerCe;
     
    // Begin the method to generate a SQL Server CE engine exception.
    public void ShowSqlCeException() 
    {
        string mySelectQuery = "SELECT column1 FROM table1";
        SqlCeConnection myConnection = new SqlCeConnection("Data Source=nonExistSource.sdf;");
        SqlCeCommand myCommand = new SqlCeCommand(mySelectQuery,myConnection);
     
        try 
        {
            myCommand.Connection.Open();
        }
     
        // Catch the exception as e and pass it to the ShowErrors routine.
        catch (SqlCeException e) 
        {
            ShowErrors(e);
        }
     
    }
     
    // Error handling routine that generates an error message
    public static void ShowErrors(SqlCeException e) 
    {
        SqlCeErrorCollection errorCollection = e.Errors;
     
        StringBuilder bld = new StringBuilder();
        Exception inner = e.InnerException;
     
        if (null != inner) 
        {
            MessageBox.Show("Inner Exception: " + inner.ToString());
        }
        // Enumerate the errors to a message box.
        foreach (SqlCeError err in errorCollection) 
        {
            bld.Append("\n Error Code: " + err.HResult.ToString("X")); 
            bld.Append("\n Message   : " + err.Message);
            bld.Append("\n Minor Err.: " + err.NativeError);
            bld.Append("\n Source    : " + err.Source);
     
            // Enumerate each numeric parameter for the error.
            foreach (int numPar in err.NumericErrorParameters) 
            {
                if (0 != numPar) bld.Append("\n Num. Par. : " + numPar);
            }
     
            // Enumerate each string parameter for the error.
            foreach (string errPar in err.ErrorParameters) 
            {
                if (String.Empty != errPar) bld.Append("\n Err. Par. : " + errPar);
            }
     
            MessageBox.Show(bld.ToString());
            bld.Remove(0, bld.Length);
        }
    }
    concernant IIS il faut aussi donner les droits d'acces a ton serveur et ta base a l'utilisateur IIS (par defaut IUSR_NOMMACHINE).

    Pour MSDE je ne sais pas si cela fonctionne avec RDA mais SQL 7 et 2000 marche nickel. Attention il faut installer la bonne version de la dll scessa.dll il existe un package different pour l'installation suivant le service pack installe sur le serveur.

    a+
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : avril 2004
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Un grand merci pour ta réponse Gandalf Le Blanc !
    Grâce à ça j'ai pu avoir des messages d'erreur plus explicites:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Error Code: 80004005
    Message   : An internal error occured. [ID,,,,,]
    Minor Err.: 28574
    Source    : Microsoft SQL Server 2000 Windows CE Edition
     
    Error Code: 80004005
    Message   : [DBNETLIB] [ConnectionOpen(Connect()).]
                Ce serveur SQL n'existe pas ou son accès est refusé.
    Minor Err.: 17
    Source    : Microsoft OLE DB Provider for SQL Server
    et trouver la réponse:
    en fait le serveur tourne bien, mais visiblement le client n'était configuré pour aucun protocole de communication (outil MS SQL Server/Utilitaire Client Réseau), donc forcément ca déconnait.

    Maintenant ca marche nikel, plus qu'à faire le reste du programme

    [Edit]
    Décidément j'arrive pas à me rappeler de tout dire en une fois...
    Donc MSDE 2000 marche aussi pour le RDA, et est utilisable avec les outils d'administration de SQL Server 2000.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQL Server 2008 link server avec SQL Server 2005
    Par Herlece dans le forum Développement
    Réponses: 2
    Dernier message: 25/04/2012, 11h19
  2. problème réplication sql server 2000
    Par ivanov21 dans le forum Réplications
    Réponses: 1
    Dernier message: 09/06/2011, 18h34
  3. Réponses: 2
    Dernier message: 18/06/2009, 17h25
  4. Problème Connection Jbuilder avec MS SQL Server 2000
    Par kchami77 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/02/2006, 23h29
  5. Problème réplication SQL Server et SQL Server CE (RDA)
    Par didix11 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/04/2004, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo