Pocket PC et accès base de données distante - Divers - Programmation
Marsh Posté le 04-06-2007 à 19:42:52
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
Marsh Posté le 04-06-2007 à 21:03:02
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
Marsh Posté le 04-06-2007 à 23:12:09
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
Quen penses tu?
Merci pour votre aide.
Marsh Posté le 05-06-2007 à 08:08:36
esox_ch a écrit : Je comprend pas trop le problème ... |
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é
Marsh Posté le 05-06-2007 à 08:10:26
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
Marsh Posté le 05-06-2007 à 17:47:25
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
Marsh Posté le 05-06-2007 à 17:54:33
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)
Marsh Posté le 07-06-2007 à 17:46:43
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
Marsh Posté le 07-06-2007 à 17:58:06
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
Marsh Posté le 07-06-2007 à 19:29:42
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 ?
Marsh Posté le 07-06-2007 à 19:50:39
ouais mais il faut vérifier que Mathieu est bien "résolvable", je te conseillerai plutot de mettre l'ip
Marsh Posté le 11-06-2007 à 17:08:17
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
Marsh Posté le 11-06-2007 à 17:46:36
"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.
Marsh Posté le 29-06-2007 à 12:30:32
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
Marsh Posté le 08-08-2007 à 01:10:04
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!
Marsh Posté le 03-12-2007 à 17:43:42
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 ... ^^
Marsh Posté le 03-12-2007 à 17:46:11
non, suffit d'une connexion sur l'appareil (GPRS, Wifi, ethernet ...)
Marsh Posté le 04-12-2007 à 10:47:25
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?
Marsh Posté le 04-12-2007 à 11:01:46
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.
Marsh Posté le 29-05-2008 à 10:36:25
Salut tout le monde!
neolio>> Comment réalisait tu tes requettes HTTP et via quelles méthodes les récupérais tu avec C#?
Marsh Posté le 22-07-2008 à 14:32:23
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
Marsh Posté le 22-07-2008 à 16:42:21
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...
Marsh Posté le 14-04-2007 à 20:18:51
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 :
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 !!!