Bonjour,
je cherche a mettre en place une application pour envoyer/recuperer des donnees entre un serveur et un pocket pc.
Apres recherches la solution de RDA me parait tres interessante.
J'ai donc mis en place une machine avec IIS 6.0, sql server 2005, sql mobile edition 2005, et lancer l'assistant de synchronisation web de sql mobile edition. Mon repertoire virtuel contenant l'agent server est creer, et quand je tappe l'adresse de cet agent dans un navigateur internet de mon pocket le message "SQL Server Mobile Sever Agent 3.0" s'affiche bien.
J'ai donc commencer a dev mon application avec Visual Studio 2005 SP1 et bien verifier que l'agent client est present sur mon pocket (Windows\sqlceca30.dll).
Voici mon code :
System.Data.SqlServerCe.SqlCeConnection cnx = null;
System.Data.SqlServerCe.SqlCeRemoteDataAccess rda = null;
System.Data.SqlServerCe.SqlCeEngine engine = null;
string connectionLocale = @"Data Source=\My Documents\Test.sdf";
string connectionDistante = @"Provider=sqloledb; Data Source=XX.X.XX.4X; Initial Catalog=Test; User Id=xxxxxx;Password=xxxxxxxxx";
try
{
if (!System.IO.File.Exists("\\My Documents\\Test.sdf"))
{
engine = new System.Data.SqlServerCe.SqlCeEngine(connectionLocale);
engine.CreateDatabase();
engine.Dispose();
}
else
{
cnx = new System.Data.SqlServerCe.SqlCeConnection(connectionLocale);
cnx.Open();
System.Data.SqlServerCe.SqlCeCommand cmd = cnx.CreateCommand();
cmd.CommandText = "DROP TABLE Personne";
cmd.ExecuteNonQuery();
if (cnx.State != ConnectionState.Closed) cnx.Close();
}
rda = new System.Data.SqlServerCe.SqlCeRemoteDataAccess();
rda.InternetLogin = "xxxxxx";
rda.InternetPassword = "";
rda.InternetUrl = "http://XX.X.XX.XX/sync/sqlcesa30.dll";
rda.LocalConnectionString = connectionLocale;
rda.Pull("Personne", "SELECT * FROM Personne", connectionDistante,System.Data.SqlServerCe.RdaTrackOption.TrackingOnWithIndexes, "ErrorTable"););
}
catch (System.Data.SqlServerCe.SqlCeException ex)
{
foreach (System.Data.SqlServerCe.SqlCeError sqlError in ex.Errors)
{
//System.Data.SqlServerCe.SqlCeException
MessageBox.Show("Message : " + sqlError.Message + " \nSource: " + sqlError.Source + " \nNative : " + sqlError.NativeError + " \nHR : " + sqlError.HResult);
MessageBox.Show(sqlError.Message, "Erreur");
}
MessageBox.Show(ex.Message, "Erreur");
}
catch (Exception exc)
{
MessageBox.Show("Erreur de @##@ "+exc.Message, "Erreur");
}
finally
{
rda.Dispose();
}
}
Niveau creation de la base de donnee locale tout va bien, mais lorsque j'arrive sur rda.Pull rien ne va plus ....
Voici le message d'erreur :
Message :
Source : Microsoft SQL Server 2005 Mobile Edition
Native : 28011
HResult : -2147024809
Message tres explicite ...
Si quelqu'un a une idee, une piste, une solution ?!!!
Le code me parait bon, je cehrche du cote authentification sql server mais ca l'air correct, enfin je suis un peu perdu la
++