Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1133 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Pocket PC et accès base de données distante

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pocket PC et accès base de données distante

n°1542930
neolio42
Posté le 14-04-2007 à 20:18:51  profilanswer
 

Bonjour à tous,
 
dans le cadre d'un projet, je dois concevoir une application qui tournera sur un pocket PC avec Windows mobile 5.0. Cette application doit lire des informations dans une base de données distante, sur un serveur. Le choix du langage et de la base de données restent assez libre tant que ceux ci restent gratuit.
 
Après avoir longuement cherché les différentes possibilités, il en ressort que l'on ne peut pas se connecter à une base de donnée distante à partir du PDA sauf en :
 
- faisant un système de réplication de base de données avec serveur IIS et SQL server.
- en utisant une librairie nommée ViaDB  
 
La première solution est très lourde et difficile à mettre en place et la deuxième est impossible car ViaDB doit etre programmée avec du eVB, et ce n'est plus compatible avec Windows Mobile 5.0
 
Je cherche donc une solution simple pour acceder à une base de données depuis un PDA! Toutes vos idées sont les bienvenues!  
Merci d'avance!!
 
PS: si le foromeur "jeoff" passe par ici, j'ai trouvé un message encourageant de sa part sur ce forum disant :

Citation :

donc j'ai prix eVC++ et je me suis codé un ptit protocole d'envoi de requête SQL et de réception de recordset en passant par une passerelle PC elle même connectée à la base via odbc

 
donc si tu à la chance de passer par ici fais moi signe :)
 
 
Merci à tous !!!

mood
Publicité
Posté le 14-04-2007 à 20:18:51  profilanswer
 

n°1569966
spootnikx
Posté le 04-06-2007 à 18:31:12  profilanswer
 

UP !
J'ai le même problème, as tu progressé?

n°1569982
esox_ch
Posté le 04-06-2007 à 19:42:52  profilanswer
 

Je comprend pas trop le problème ...
T'as un serveur SQL qui tourne sur un serveur X, tu écris dans un langage ou un autre (Java par exemple) un petit script qui se connecte tout seul comme un grand à la base de donnée et execute les requêtes ... C'est pas ce que tu cherches ?  
P.S: Faut juste que le serveur accepte les connections distantes, ce qui en général n'est pas le cas

n°1570015
Je@nb
Kindly give dime
Posté le 04-06-2007 à 21:03:02  profilanswer
 

Pour SQL Server tu as plusieurs moyens :
- Passer par une base SQL Server CE en réplication merge ou RDA avec un IIS qui publie la base SQL Server
- Faire un webservice sur un IIS qui se connecte sur ton SQL pour faire ce que tu lui demande (avec transferts de dataset par exemple)
- Te connecter directement au SQL Server
 
La dernière solution marche uniquement si tu utilises une vrai connexion avec le serveur SQL (et non pas via active sync par exemple).
 
http://www.microsoft.com/france/vi [...] 5ED7C02E2B
 
Tu as là une vidéo expliquant le tout :)

n°1570056
spootnikx
Posté le 04-06-2007 à 23:12:09  profilanswer
 

Merci pour le lien, j'avais déjà vu cette présentation mais la version d'il y a 2 ans.
Le système mis en place dans la vidéo est assez compliqué je trouve.
 
Ce n'est pas possible de juste se connecter a la base de données sql hébergé par un serveur et d'exécuter des requêtes depuis mon pda?
 
En fait je dois m'occuper de sortir des pièces d'un magasin : j'indique le numéro de pièce et la quantité a sortir sur le pda et l'idéal serait de faire une requête du genre insert into sortiePiece values(  ,  idPiece  ,  qte )  
avec un champs qui s'auto-incremente tout ca géré par le pda en relation avec la bdd du serveur par wifi.
 
Dans la vidéo apparemment ce n'est que pour la consultation de données.
Mais moi je dois ajouter des enregistrements, dans ce cas je ne vois pas comment faire avec la réplication car il y a les champs auto incrementé et si je créé un enregistrement dans ma base sdf et qu'en même temps je créé un enregistrement dans ma base sur le serveur il va y avoir conflit sur les primary keys lors de la synchronisation.
 
Ou alors il me faudrait un moyen d'envoyer les données concernant la sortie d'une piece (idPiece et quantité) a un pc qui les récupère et créé l'enregistrement...
 
Mais ca je ne sais pas comment faire....
 
Je suis un peu perdu en plus je débute la dedans
Qu’en penses tu?
 
Merci pour votre aide.

n°1570095
MagicBuzz
Posté le 05-06-2007 à 08:08:36  profilanswer
 

esox_ch a écrit :

Je comprend pas trop le problème ...
T'as un serveur SQL qui tourne sur un serveur X, tu écris dans un langage ou un autre (Java par exemple) un petit script qui se connecte tout seul comme un grand à la base de donnée et execute les requêtes ... C'est pas ce que tu cherches ?  
P.S: Faut juste que le serveur accepte les connections distantes, ce qui en général n'est pas le cas


Euh, ben le problème c'est un peu sourtout que sur Pocket PC y'a pas de gestionnaire ODBC...
 
Sinon, Spootnik, le mieux (d'après moi) c'est de passer par un WebService. C'est du moins ce que je fais à chaque fois que j'ai à faire une appli sur PPC qui nécessite accès à une base. L'intérêt, c'est qu'une connection à un serveur exposé publiquement, je suis sûr que depuis le fin-fond d'une tribu papou j'y aurais accès. Faire un lien ODBC over GSM c'est déjà plus chaud sans parler des problèmes de sécurité ;)


Message édité par MagicBuzz le 05-06-2007 à 08:13:23
n°1570096
Je@nb
Kindly give dime
Posté le 05-06-2007 à 08:10:26  profilanswer
 

Pour l'accès direct je pense que tu peux faire directement ta requette insert.
Sinon bah webservices sur une machine et ton pda qui interroge ton webservice

n°1570503
spootnikx
Posté le 05-06-2007 à 17:47:25  profilanswer
 

Merci pour vos réponses.
Je vais donc m'orienter selon vos conseils vers l'utilisation d'un web service.
Connaissez vous des sites expliquant la mise en place d'un web service ou encore mieux des sources prêtes à l'emploi.
J'ai besoin d'un max d'informations :)

n°1570509
MagicBuzz
Posté le 05-06-2007 à 17:54:33  profilanswer
 

En C#, tu vas voir, c'est tellement limpide que ça se passe de doc.
 
Seul hic, va falloir trouver une IDE gratuite qui permette de le faire... Parceque VS 2005 Express ne supporte pas le dev PDA... (par contre pour les webservices côté serveur c'est ok)
 
=> Donc le seul truc, c'est de trouver comment depuis eVC++ interroger le webservice (au pire, c'est des bêtes requêtes HTTP dans lesquelles il faut parler XML)


Message édité par MagicBuzz le 05-06-2007 à 17:55:29
n°1571724
spootnikx
Posté le 07-06-2007 à 17:46:43  profilanswer
 

re,
 
j'ai commencé à développer le web service et j'ai une petite question
 
J'ai le schéma suivant :
- le web service en localhost sur une machine A http://localhost/website/convert.asmx
- Une base sql sur une machine B
- Un PDA C
 
Tout est relié à un routeur wifi
 
Ma question c'est comment accéder au web service depuis le PDA ou comment rendre accessible le web service?
Comment faire pour juste afficher hello word sur le PDA en passant par le web service
 
Merci pour votre aide

mood
Publicité
Posté le 07-06-2007 à 17:46:43  profilanswer
 

n°1571730
Je@nb
Kindly give dime
Posté le 07-06-2007 à 17:58:06  profilanswer
 

Tu le met dans IIS et dans ton projet PDA tu met ta référence du webservice vers l'ip/dns de ton IIS. Localhost ne marchera pas étant donné que c'est pour se connecter sur la même machine et pas une distante

n°1571829
spootnikx
Posté le 07-06-2007 à 19:29:42  profilanswer
 

Ok mais j'aurais besoin d'une précision
 
Si ma machine ou se trouve le web service s'appelle Mathieu je dois mettre quoi comme réference dans mon projet PDA, http://Mathieu/website/convert.asmx  ?

n°1571844
Je@nb
Kindly give dime
Posté le 07-06-2007 à 19:50:39  profilanswer
 

ouais mais il faut vérifier que Mathieu est bien "résolvable", je te conseillerai plutot de mettre l'ip

n°1572457
spootnikx
Posté le 08-06-2007 à 16:35:54  profilanswer
 

:) yes, ca marche nickel  
merci beaucoup pour votre aide [:charlest]

n°1573360
spootnikx
Posté le 11-06-2007 à 17:08:17  profilanswer
 

re,
 
Finnalement je vais peut etre devoir utiliser du materiel sous windows CE 5.0.
Est ce que la programmation est la même (C# smart device visual studio 2005), la connexion à la base de données se fait egalement par web services?
Est ce que mon application qui tourne sur mon pocket pc tournera sur sur windows CE?
 
merci

n°1573387
MagicBuzz
Posté le 11-06-2007 à 17:46:36  profilanswer
 

"oui et non"
 
=> faudra certainement apporter quelques modifs au code, et obligatoirement recompiler.
 
mais oui, Windows CE ~ Windows Smartphone ~ Windows Smartdevice ~ Windows PPC
 
Y'a pas de différence vitale, et sous .NET, c'est généralement juste la plateforme de sortie qui diffère, le code de change pas. Par contre, il faudra compiler pour chaque, ou coder proprement, notamment à cause des différences d'écran/interface de saisie : y'a pas de souris sur un smartphone, l'écran n'a pas les mêmes dimensions/ratio (non seulement d'une plateforme à l'autre, mais aussi d'un modèle à l'autre), etc.
 
si tu bosses 100% sans sortir du framework .NET tu ne devrais pas avoir de problème par contre.

n°1580753
spootnikx
Posté le 29-06-2007 à 12:30:32  profilanswer
 

Salut c'est re moi
j'ai un pb avec l'instalation de mon service web sur le pc où je travaille.
En fait j'ai bien accès à la page du web service, je vois les differentes methodes mais quand je clique sur le bouton invoke pour la methode du hello world par exemple j'ai une page d'erreur 404 fichier non trouvé.
j'comprend pas.
 
Une idée?
TY

n°1596985
neolio
Posté le 08-08-2007 à 01:10:04  profilanswer
 

Oula les amis, j'avais oublié ce post! désolé!! Du coup j'y apporte quelques précisions au cas ou qq1 a le meme probleme.
 
En effet à partir du PDA, comme cela a été précisé, pour acceder à la base de donnée, il faut:
 
- Passer par une base SQL Server CE en réplication merge ou RDA avec un IIS qui publie la base SQL Server  
- Faire un webservice sur un IIS qui se connecte sur ton SQL pour faire ce que tu lui demande (avec transferts de dataset par exemple)  
 
(- Te connecter directement au SQL Server <= impossible si la base de données est distante !!!!!!!!!)
- Il existe des logiciels comme ViaDB qui permettent cela mais il ne sont pas utilisables en .NET
 
Il n'y a pas d'autre solution pour y acceder "DIRECTEMENT".  
Mon probleme a l'époque c'etait que je devais communiquer avec MySQL et pas SQL server.
 
Ma solution: je fesais des requetes HTTP depuis le PDA vers le serveur. Le serveur contenait des script PHP qui eux exécutaient mes requetes SQL et les renvoyaient au PDA sous forme de réponse HTTP. Il restait qu'a les traiter en C# puisque j'utilisais ce langage!
Voila!


Message édité par neolio le 08-08-2007 à 11:12:50
n°1652375
kakyo1503
Posté le 03-12-2007 à 17:43:42  profilanswer
 

au cas ou quelqu'un traine encore sur ce forum, personne a trouver qq chose? parce que la il reste :
- Passer par une base SQL Server CE en réplication merge ou RDA avec un IIS qui publie la base SQL Server  
 
et sans activesync ca va etre dur ... ^^
 

n°1652377
Je@nb
Kindly give dime
Posté le 03-12-2007 à 17:46:11  profilanswer
 

non, suffit d'une connexion sur l'appareil (GPRS, Wifi, ethernet ...)

n°1652578
kakyo1503
Posté le 04-12-2007 à 10:47:25  profilanswer
 

ben ma situation :  
j'ai un server sql 2005 et un cradle contenant 4 pda branché en ethernet ( donc par conséquent , activesyn c'est mort ,cf. la notive lol )  
 
Chacun des pda possède donc une ip , etc etc .
 
donc le but serait de faire un truc pour que l'appli qui se trouve sur le pda et puisse communiquer avec la base du server.
 
cela est ce possibe?

n°1652584
Je@nb
Kindly give dime
Posté le 04-12-2007 à 11:01:46  profilanswer
 

oui.
En fait qd tu utilise active sync c'est pour lancer une connexion réseau tcp avec le pda/mobile qui ira interroger après le serveur sql. Donc tout ce qu'il faut c'est une connexion. Toi tu l'as directement en ethernet donc c'est bon.

n°1653081
kakyo1503
Posté le 05-12-2007 à 09:14:08  profilanswer
 

ok je vais tenter ca alors  
michi

n°1738683
1rageux
Posté le 29-05-2008 à 10:36:25  profilanswer
 

Salut tout le monde!
 
neolio>> Comment réalisait tu tes requettes HTTP et via quelles méthodes les récupérais tu avec C#?

n°1763185
neolio
Posté le 22-07-2008 à 14:32:23  profilanswer
 

Je répond peut être un peu tard , désolé!
Alors tout dépend de la sécurité dont tu as besoin mais une méthode très simple pour commencer est que côté PDA C#, tu utilise un HTTPRequest qui pointe sur l'adresse de ton serveur ou se trouve ton script. Par exemple ton PDA fait une requete à http://192.168.1.1/monscript.php?marequetesql=SELECT * FROM matable. Dans ton script PHP, qui peut recuperer les valeurs de ta base de données, tu fais un echo de ton resultat sous une maniere structurée à ta façon, exemple basique, tu separes tous tes resultats par un &, et ton appli C# recupère le resultat et remet en forme le tout!!
Ce n'est que le principe, maintenant il faut penser aux problèmes de sécurité, etc

n°1763200
Je@nb
Kindly give dime
Posté le 22-07-2008 à 14:53:30  profilanswer
 

c'est crade ça :/

n°1763292
neolio
Posté le 22-07-2008 à 16:42:21  profilanswer
 

Totalement ^^, et je le sous entendais fortement! c'etait juste pour donner une piste à "1rageux" ...
Deja ,plus proprement, il ne faut surtout pas passer la requete SQL, mais plutot appeler le script souhaité en lui passant les paramètres à la manière d'un webservice...
Le script PHP peut par exemple retourner un XML, et le PDA gérer les données sous ce format...


Message édité par neolio le 22-07-2008 à 16:46:19
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Pocket PC et accès base de données distante

 

Sujets relatifs
Idée droit d'accésMoteur de recherches dans une base de connaissances
Mettre en tableau des données entrelacéesproblème controle d'accès avec cookie
Créer un trigger sur un schéma/user d'une base de données Transposer les données d'une Colonne MySql en plusieurs Colonnes
saugarde reguliere de la baseFormulaire: données
Plus de sujets relatifs à : Pocket PC et accès base de données distante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR