PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → [WM15] Acces Natif SQL Server pour Windev Mobile
[WM15] Acces Natif SQL Server pour Windev Mobile
Started by Olivier C, Jan., 21 2010 2:47 PM - 8 replies
Posted on January, 21 2010 - 2:47 PM
Bonjour,

Contexte:
J'aimerai depuis une application Windev Mobile sur un PDA (Windows CE) faire des requêtes directement sur mon serveur SQL Server (2008).
J'ai donc créé une connexion au serveur avec l'accès natif "Accès Natif SQL Server pour Windev Mobile"
En mode test pas de problème, la connexion fonctionne.

Problème à l'execution sur le PDA :
Lors de l'ouverture de cette connexion, le programme me renvoie l'erreur :

"Impossible de charger la dll WP150SQLServer.dll"

Cette dll est introuvable, il existe la dll WD150SQLServer.dll de l'accès natif mais en la renommant cela ne fonctionne pas.

Une idée?

Mon but est d'attaquer directement le serveur SQL depuis le PDA.

Merci !!
Posted on January, 21 2010 - 3:11 PM
Bonjour,

J'ai donc créé une connexion au serveur avec l'accès natif "Accès Natif
SQL Server pour Windev Mobile"
En mode test pas de problème, la connexion fonctionne.


normal car vous utilisez dans le mode test les elements et dll de votre
windows donc la pas de probleme


Problème à l'execution sur le PDA :
Lors de l'ouverture de cette connexion, le programme me renvoie l'erreur :
"Impossible de charger la dll WP150SQLServer.dll"

normal aussi puisque la dll n'est pas prévu pour fnctionner sous windows
mobile
actuellement pour attaquer une base SQLserver depuis un mobile il faut
passer soit par un webservice soit un tunnel soit pas une base embarquée qui
sera repliquée. les dll de windows ne fonctionne pas sous windows mobile

> Une idée?
un webservice, un tunnel ou tout autre
il existe et pour l'avoir mis en palce depuis 4 ans je passe par un tunnel
php (la base et attaquer par un script php sur un serveur et le mobile lui
ne fait que demander au serveur ce qu'il veut (requete SQL) le serveur
execute la requete recupere le resultat et renvoie au mobile le contenu de
la requete sous forme page html donc recuperable par httprequete



Mon but est d'attaquer directement le serveur SQL depuis le PDA.

oui pas de probleme si le mobile est sur wifi ou GPRS on arrive meme a
faire lire des base oracle SQLserver, MySQL, postGreSQL a des telephone ou
smartphone equipé en windows mobile


> Merci !!
faites une recherche sur windev , tunnel php sur goole ou webservice vous
devriez avoir des reponse corresponfdant a ce que vous voulez faire sinon
contacter moi directement : frederic@emidev.fr

cordialement
Posted on January, 21 2010 - 4:45 PM
merci pour la réponse !

Je vais certainement utiliser des sockets alors.

en revanche, si cela n'est pas possible pourquoi dans windev il y a t-il la possibilité de créer des connexions avec "Accès Natif
SQL Server pour Windev Mobile" (qui se paramètre de la meme façon que l'accès natif sur windev classique).

(Pour un SQLServer lite embarqué je suppose que c'est "Accès Natif
SQL Server Mobile pour Windev Mobile")

merci encore,
Posted on January, 21 2010 - 5:25 PM
Bonjour

oui je pense
pour en revenir a l'acces par HTTP je prefere cela car pour des raison
evidente de securite il est tres faile de passé par https pour avoir une
securite maximale sans rien changer

pour les socket cela va demander de developper un serveur specifique (qui
recoit la demande l'execute et renvoie le resultat de la requete.

la technologie des tunnel existe depuis 10 a 15 ans : l'avantage est d'avoir
quelque chose de standard qui evolue en meme temps que le reste puisqu'il
s'appuie sur des standard comme http. de plus pour entré dans des reseaux
particulier le port 80 et 443 sont generalement ouvert car pour http et
https

bref c'etait juste pour le fun
voici par exemple l'acces http directe sur les base SQLserver, Oracle,
MySQL, PostGreSQL, Firebird, depuis un mobile :
http://www.sqlmanagerx.com/websqlx/html/modules/icontent/index.php…
je l'utilise depuis le debut et il a ete mis en place dans des grands
groupes pour faire des inventaires avec des appareils mobiles depuis 5 ans
sur des bases oracle mySQL et SQMserver sans faire de dechargement de
l'appareil ou de replication (le mobile lit et met a jour la base de données
réelle)

cordialement
Frederic EMPRIN



"Olivier C" <o.chotard@chateau-margaux.com> a écrit dans le message de
news:6511623aa153409b85e1152500d3eccb@news.pcsoft...

merci pour la réponse !

Je vais certainement utiliser des sockets alors.

en revanche, si cela n'est pas possible pourquoi dans windev il y a t-il
la possibilité de créer des connexions avec "Accès Natif
SQL Server pour Windev Mobile" (qui se paramètre de la meme façon que
l'accès natif sur windev classique).

(Pour un SQLServer lite embarqué je suppose que c'est "Accès Natif
SQL Server Mobile pour Windev Mobile")

merci encore,
Posted on September, 13 2010 - 6:44 PM
Bonjour,

Merci pour votre riche participation à cet aspect.

A la lecture de nombreux de vos posts et réponses,
je conclu que l'accès à SQL Server avec un mobile sous Windev Mobile 15
en liaison Wifi ne pouvait être réalisé qu'avec un "add-on".

Ais-je bien compris ?

Si c'est bien le cas (passons sur l'aspect des accès natifs....)
l'usage d'une classe comme PHP pour Windev est "la" solution.

Que me conseillerez vous pour accèder a une base d'un Sql Server sous Windows Server 2008 R2 ?

D'avance merci,

Jean
Posted on September, 13 2010 - 7:37 PM
Bonjour,

"Jean" <allmailforme@gmail.com> a écrit dans le message de
news:5d9513023f20d2e22ab5162e1d2134dd@news.pcsoft...

Bonjour,

Merci pour votre riche participation à cet aspect.

A la lecture de nombreux de vos posts et réponses,
je conclu que l'accès à SQL Server avec un mobile sous Windev Mobile 15
en liaison Wifi ne pouvait être réalisé qu'avec un "add-on".


non ce n'est pas un add on puisque on utilise simplement un acces par tunnel
mais le tunnel lui est lié a la base. sur le mobile il n'y a rien mis a part
une classe. (pas de dll, pas de script pas de données)

ce qui permet de se passer des dll (qui pour l'instant se font rares) et
pour eviter un autre probleme. les mobile ne sont pas encore tres suffisant
en memoire et parfois suivant le modele on ne peut pas tout charger (le
frameWork etant important moins on charge de dll par la suite mieux c'est.


Ais-je bien compris ?

Si c'est bien le cas (passons sur l'aspect des accès natifs....)
l'usage d'une classe comme PHP pour Windev est "la" solution.


LA solution je ne sais pas mais depuis windev mobile 11 je connecte des
mobile telephone ou autre sur des bases oracle , mySQL, SQLServer etc ....
sans aucun souci. et d'une version a l'autre sans aucun probleme que se soit
windows CE , Windows mobile ou de windev mobile (une simple compilation pour
le changemement de windev


Que me conseillerez vous pour accèder a une base d'un Sql Server sous
Windows Server 2008 R2 ?


tout depend de l'architecture en place et comment vous voulez y acceder
si vous devez faire de l'embarque pur avec chargement et dechargement de la
base le mieux (et je le pratique aussi tous les jours) est de passé par une
base HF embarquee

mais si vous avez le wifi ou GPRS de possible la solution tunnel est bien
partique en plus le code est compatible entre windev et windev mobile. mes
procedure utilisant php4wd que ce soit sur windev ou windev mobile le code
change pas et ca c'est agreable pour les modif on modifie le prog windev et
le mobile utilisant la collection de procedure en beneficie aussi


D'avance merci,

Jean


cordialement

Firetox
Posted on September, 13 2010 - 11:36 PM
non ce n'est pas un add on puisque on utilise simplement un acces par tunnel
mais le tunnel lui est lié a la base. sur le mobile il n'y a rien mis a part
une classe. (pas de dll, pas de script pas de données)

=> je vous dire "Add-On" dans le sens que ce n'est finalement pas natif avec WDM...

LA solution je ne sais pas mais depuis windev mobile 11 je connecte des
mobile telephone ou autre sur des bases oracle , mySQL, SQLServer etc ....
sans aucun souci. et d'une version a l'autre sans aucun probleme que se soit
windows CE , Windows mobile ou de windev mobile (une simple compilation pour
le changemement de windev


Que me conseillerez vous pour accèder a une base d'un Sql Server sous
Windows Server 2008 R2 ?

tout depend de l'architecture en place et comment vous voulez y acceder

=> connecté en Wifi au réseau local

mais si vous avez le wifi ou GPRS de possible la solution tunnel est bien
partique en plus le code est compatible entre windev et windev mobile. mes
procedure utilisant php4wd que ce soit sur windev ou windev mobile le code
change pas et ca c'est agreable pour les modif on modifie le prog windev et
le mobile utilisant la collection de procedure en beneficie aussi

Serait-il possible d'avoir un "exemple" concret afin de bien comprendre le codage coté Mobile ?

merci pour toutes ces informations,

Jean
Posted on September, 14 2010 - 8:40 AM
bonjour,


Serait-il possible d'avoir un "exemple" concret afin de bien comprendre le
codage coté Mobile ?
merci pour toutes ces informations,


en fait on utilise le meme mecanisme que windev avec les fonction SQLexec
on a un mySQLconnect pour se connecter
des mySQLExec pour executer des requetes
des fonction pour mettre le resultat dans une table (mySQLtable ....) ,
pour lire les colonne (mySQLLitCol, ....) , les enregistrements
(mySQLsuivant, mySQLPrecedent ....)

par exemple :
connexion :

LOCAL
v_retCode is boolean

monAccess:TypeBase = "MYSQL"
monAccess:CleCryptage = "AABBCCDDEEFFGGHH" // the same in connect.php

v_retCode =
monAccess:mySQLConnecte("http://127.0.0.1/php4wd.php","","","FREDERIC")

IF (v_retCode = True) THEN
estConnecte = True
Groupe1..Etat = Actif
Connection..Etat = Grisé
ELSE
Erreur("Impossible de se connecter à la base de donnée .", "Erreur n° " +
monAccess:mySQLErreur, monAccess:mySQLGetErrorMessage())
END


Affichage d'une requete dans une table de la fenetre
LOCAL
retCode is un entier

TableSupprimeTout(TABLE1)
chrono:Debut()
retCode = monAccess:mySQLExec("SELECT work_list, lnotes FROM work_list LIMIT
1000 ", 0)
IF (retCode =1) THEN
monAccess:mySQLTable(0, "TABLE1")
ELSE
Info(monAccess:mySQLErreur+ "/ "+monAccess:mySQLGetErrorMessage())
END
monAccess:mySQLFerme(0)


remplissage de la table en lecture par colonne du resultat
LOCAL
retCode is entier
custom_ID is string
custom_Name is string
custom_date is string

TABLE1..Visible = Faux
TableSupprimeTout("TABLE1")
retCode = monAccess:mySQLExec("SELECT work_list, lnotes FROM work_list
LIMIT 1000 ; SELECT work_list FROM work_list LIMIT 1000 ", 0)
IF (retCode=1) THEN
monAccess:mySQLPremier(0)
WHILE (NOT monAccess:mySQLEnDehors)
custom_ID = monAccess:mySQLCol(0,1)
custom_Name = monAccess:mySQLCol(0,2)
//custom_date = monAccess:mySQLCol(0, 3)
TableAjoute("TABLE1", custom_ID + TAB + custom_Name + TAB + custom_date)
monAccess:mySQLSuivant(0)
END
ELSE
Erreur("Erreur n° " + monAccess:mySQLErreur,
monAccess:mySQLGetErrorMessage())
END
monAccess:mySQLFerme(0)


voila
tout est dans le projet exemple du projet en download




Jean
Posted on September, 15 2010 - 3:56 PM
Merci,
Mais coté serveur, il faut donc un serveur web d'activé avec PHP,
que me conseillez vous pour les tests sur un PC XP
et pour le déploiement sur un serveur 2008R2

> tout est dans le projet exemple du projet en download
=> je n'ai pas compris ??? "projet exemple en download"

Merci pour tout, le début d'une solution commence à émerger....

;-)

Jean