PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Webservice SQLConnecteWS
Webservice SQLConnecteWS
Débuté par Olivier COILLET, 27 fév. 2014 16:20 - 22 réponses
Posté le 27 février 2014 - 16:20
Bonjour

Je viens de découvrir le web service SQLConnecteWS fourni par pc soft.
Je l'ai installé sur un poste.
J'ai fait un projet test sous windev mobile 19 qui se connecte sur une base SQL Server, en test aucun souci çà fonctionne dès que je bascule en réel sur mon portable android la connection sur le webservice fonctionne mais aucune donnée renvoyée ( la connexion sql serveur se fait sans erreur )
Si vous avez des idées je suis preneur sachant que c'est le webservice qui fait le lien.

Autre anomalie : j'ai fait le test sur une base access si celle ci est sur le serveur qui abrite le web service l'accès à la base fonctionne si elle sur un autre serveur la connection est rejetée je précise qu'on a vérifier tous les droits concernant la sécurité des répertoires.

Merci par avance pour vos réponses.
Posté le 06 mars 2014 - 11:52
Bonjour

Je viens de trouver le problème il faut intégrer les librairies HFSQL au moment de la génération android même si on n'a pas d'analyse et qu'on travaille avec des bases externes
Donc problème résolu.

Cordialement
Membre enregistré
246 messages
Popularité : +1 (1 vote)
Posté le 16 juillet 2014 - 17:06
Bonjour,

Je ressors le topic à propos de ce webservice. J'ai besoin de récupérer des données d'une base SQL serveur vers un mobile. (Accès ODBC)

J'ai donc installé ce webservice. Ca marche à 99% MAIS il est impossible de récupérer une rubrique INT, ca me retourne toujours 0. Exemple de code:

nomReq est une chaîne = "ReqListeInv"

g_requete = [
SELECT Id_Inv , Lib_Inv FROM STK_INVENTAIRE
]
SI PAS SQLExec (g_requete,nomReq) ALORS
// erreur
RETOUR
FIN

SQLPremier(nomReq)
TANTQUE PAS SQL.EnDehors
id_inv est un entier = SQLCol(nomReq,1) // ca me retourne toujours 0 ! alors que ce n'est pas le cas dans la base
lib_inv est une chaîne = SQLCol(nomReq,2)
SQLSuivant(nomReq)
FIN

SQLFerme(nomReq)


Est ce que quelqu'un a déjà remarqué ce problème ?

Merci

A+

--
Vincent ROY

Freelance WinDev, WebDev, WinDev Mobile

Mail: contact [@] ennovsys.fr
Tel: 06.86.67.72.32
Skype: vincentroy11

http://www.vincent-roy.fr
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 06 août 2014 - 23:17
Bonsoir Olivier,

Où as-tu trouvé ce webservice SQLConnectWS ?
Membre enregistré
246 messages
Popularité : +1 (1 vote)
Posté le 07 août 2014 - 10:04
Salut,

Voir cette doc:
http://doc.pcsoft.fr/fr-FR/?1000021063&name=SQL_Acces_a_une_base_de_donnees_via_un_Webservice

A+

--
Vincent ROY

Freelance WinDev, WebDev, WinDev Mobile

Mail: contact [@] ennovsys.fr
Tel: 06.86.67.72.32
Skype: vincentroy11

http://www.vincent-roy.fr
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 08 août 2014 - 01:47
Merci Vincent.
J'avais aussi trouvé le bon lien entre temps....
Je vais voir si je peux modifier l'appli Androïd pour utiliser cette fonctionnalité.
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 09 août 2014 - 00:33
j'ai mis le code pour faire la connexion à ma base Access avec le webservice. Cela semble fonctionner au niveau de la connexion car SQLConnecteWS me renvoie la valeur 1. Mais ayant l'habitude d'utiliser hExecuteRequeteSQL, je buttais sur un message d'erreur indiquant qu'il n'arrivait pas à initaliser la requête. Je suis donc passé à l'utilisation de SQLExec et cette fois-ci j'arrive à lire les données.
Alors je me pose cette question : Est-ce que je dois impérativement utiliser les fonction SQLxxx ? et laisser tomber hExecuteRequeteSQL et consorts?
Merci pour votre réponse.
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 19 août 2014 - 21:09
En mode test mon application se connecte bien et je récupère bien les données de la base Access utilisée avec le WebService.
Mais lorsque je veux utiliser l'application sur ma tablette, j'ai systématiquement le message d'erreur :
La connexion à la source de données E:\Clients......mdb a échoué (mais ça c'est moi qui affiche ce message!!!) suivi du code erreur 76005 (récupéré avec SQL.Erreur)
Par contre j'ai aussi demandé d'afficher SQL.MesErreur mais il n'y a rien alors que j'ai bien fait un SQLInfoGene() juste avant !!!
Pour l'adresse de SQLConnecteWS j'ai essayé avec http://PC-SALON... et avec http://192.168.1.35... mais j'ai le même résultat

Alors je crie : HELP HELP !!!

Merci d'avance pour votre aide
Posté le 20 août 2014 - 12:47
Bonjour,

Au regard de l'adresse ip de ton pc-salon, il me semble voir une adresse derrière une boxe free. Si cela à est cas, as-tu configuration ton routeur pour que la tablette puisse voir ton serveur .


cordialement
Membre enregistré
1 message
Posté le 20 août 2014 - 13:02
Bonjour,

1/ Est-ce que ton développement, ta base mdb et ton serveur de WebServices sont sur la même machine ?

2/ Au regard de l'adresse ip de ton PC-SALON, tu dois être derrière une boxe free.


si 1 et 2 sont vrais, as-tu modifié l'ouverture des ports sur ton routeur free pour que la tablette puisse voir ton PC
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 20 août 2014 - 23:57
le dev, la base mdb et le webservice sont sur la même machine.

je suis connecté en wifi sur une box SFR et je ne sais pas comment faire pour que la tablette puisse voir le pc.
Si vous savez comment faire je suis preneur de toute info utile pour ça.
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 21 août 2014 - 16:15
j'ai réussi à faire en sorte que la tablette voit le pc-salon (je suis allé dans le module 'réseau' et j'ai fait un scan du réseau qui a trouvé le pc-salon) mais cela ne fait pas avancer le schmilblik!!!! j'ai toujours mon message d'erreur 76005 !!!
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 27 août 2014 - 00:25
j'ai mis à jour Windev Mobile qui avait la version 44n et je suis passé a la 56s.
J'ai toujours mon erreur 76005 mais maintenant j'ai aussi le libellé de l'erreur : impossible de contacter le serveur http://PC-SALON/WDSOAPDB_WEB/
Du coup je me demande si ce n'est pas un problème avec ma box SFR, du genre ouvrir un port ou qqe chose de similaire...
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 28 août 2014 - 22:53
Pascal GIRY ( APHP ) a écrit :
Bonjour,

1/ Est-ce que ton développement, ta base mdb et ton serveur de WebServices sont sur la même machine ?

2/ Au regard de l'adresse ip de ton PC-SALON, tu dois être derrière une boxe free.


si 1 et 2 sont vrais, as-tu modifié l'ouverture des ports sur ton routeur free pour que la tablette puisse voir ton PC



quels ports faut-il ouvrir ? et surtout, le plus important : comment fait-on pour ouvrir les ports?
J'avoue que je suis largement dépassé!!!!
merci d'avance pour votre aide
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 01 septembre 2014 - 19:34
j'ai eu les infos de la part de Pc Soft :
- le WebService Réservé utilise le port 80 (du coup il est normalement ouvert...)

j'ai créé une adresse dynamique pour mon pc mais je n'arrive toujours pas à faire fonctionner l'application. J'ai toujours le message "Impossible de contacter le servuer http://xxxxx/WDSOAPDB_WEB"
Pourtant sur ma box j'ai bien activé le DNS dynamique. alors je coince vraiment.
Si une bonne âme peut m'aider. Eventuellement si quelqu'un a un serveur WebDev Réservé opérationnel et qu'il accepte d'héberger la base Access le temps de faire quelques tests pour m'assurer que mon application fonctionne bien....
Merci d'avance.
Posté le 04 décembre 2014 - 16:15
Bonjour j'ai moi meme ce probleme de connexion, l'as tu resolu entre temps?
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 04 décembre 2014 - 23:26
oui le problème a été réglé en paramétrant correctement le routeur SonicWall
Membre enregistré
144 messages
Posté le 24 février 2015 - 09:23
J'ai un soucis avec le webservice. Si j'utilise la fonction SQLConnecte, cela fonctionne, j'ai bien, j'ai mon tableau qui se rempli bien normalement.

Si j'utilise la connection du Webservice, j'ai bien un numéro de connexion OK mais par contre je n'ai aucun enregistrement récupéré.
Qui aurait une idée ??
Ma couche SQL est bien installé partout.

Voici le code :

//NumConnexion = SQLConnecteWS("http://monsite.ch/WDSOAPDB_WEB/","mysql.monServeur.net", "user", "mdp", "base", "MySQL")
NumConnexion = SQLConnecte(d111.monServeur.net", "user", "mdp", "base", "MySQL")


SI NumConnexion <> 0 ALORS
i est un entier = 0
SQLExec("SELECT NOM FROM CLIENT limit 0,10","REQ_CLIENT")

//SQLTable("REQ_DEBITEURS",Table1,10,"sadf","100")

TANTQUE SQLAvance("REQ_CLIENT") = 0 // Il y a encore une ligne à lire
i++
// Récupérer les données
TableAjoute(Table1, SQLLitCol("REQ_CLIENT", 1))

FIN
SQLFerme("REQ_CLIENT")


SINON
// La connexion a échoué : affichage d'un message explicatif
SQLInfoGene()
Erreur("La connexion à la source de données" + NomSource + ...
"a échoué." + RC + "Code erreur : " + ...
SQL.Erreur + RC + SQL.MesErreur)

FIN


Merci pour votre aide ;)

--
Nicolas
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 24 février 2015 - 11:03
Bonjour Nicolas,

Il me semble que le problème vient de la manière dont tu lis les données.
Il faudrait que tu essaies ainsi :
sNomRequete est une chaine = "REQ_CLIENT"

SI PAS SQLExec("SELECT NOM FROM CLIENT limit 0,10", sNomRequete) ALORS
Erreur("blabla")
SQLFerme(sNomRequete)
//Sortir du code
FIN

SQLPremier(sNomRequete)
TANTQUE PAS SQL.EnDehors
TableAjoute(Table1, SQLCol(sNomRequqte, 1))
SQLSuivant(sNomRequete)
FIN

SQLFerme(sNomRequete)

C'est ainsi que je fonctionne avec le SQLConnecteWS et ça fonctionne très bien.
Posté le 25 octobre 2016 - 16:06
Bonjour,

De mon côté je n'arrive pas à récupérer le dernier ID crée dans la base.
La fonction MySQL "LAST_INSERT_ID" me renvoi toujours 0.
Elle ne fonctionne pas avec une connexion SQLConnecteWS.

Une idée ?

Cordialement,
Membre enregistré
282 messages
Popularité : +4 (4 votes)
Posté le 27 octobre 2016 - 01:06
William a écrit :
Bonjour,

De mon côté je n'arrive pas à récupérer le dernier ID crée dans la base.
La fonction MySQL "LAST_INSERT_ID" me renvoi toujours 0.
Elle ne fonctionne pas avec une connexion SQLConnecteWS.

Une idée ?

Cordialement,



Si tu utilises une base MySql, je ne sais pas ce que tu dois faire car je ne connais pas.
Mais, à tout hasard, as-tu essayé de lire le dernier enregistrement ?
avec un SQL classique, la requete serait du genre : select top 1 LeID from table order by LeID desc
Posté le 27 octobre 2016 - 09:48
Jean a formulé la demande :
William a écrit :
Bonjour,

De mon côté je n'arrive pas à récupérer le dernier ID crée dans la base.
La fonction MySQL "LAST_INSERT_ID" me renvoi toujours 0.
Elle ne fonctionne pas avec une connexion SQLConnecteWS.

Une idée ?

Cordialement,


Si tu utilises une base MySql, je ne sais pas ce que tu dois faire car je ne
connais pas.
Mais, à tout hasard, as-tu essayé de lire le dernier enregistrement ?
avec un SQL classique, la requete serait du genre : select top 1 LeID from
table order by LeID desc


ce qui nous interresse en l'occurence avec un last_insert_id est le
dernier id crée par la session.
Ta solution ne pourrais pas fonctionner avec des accès concurrrents.

Depuis mon lecteur de news je ne vois pas le début du topic mais je
suppose que SQLconnecteWS est un truc développé par pcsoft et montré
dans un webinaire ?
Effectivement une autre interrogation perdrait cette notion de session
(je ne sais pas si l'on peut appeler cela comme ça).

Je suis justement en train d'écrire des interactions entre base mysql
et une appli mobile à base d'un webservice REST et un échange
json.(page webdev en awp)
Et dans ce cas les fonctions d'insertion doivent renvoyer dans leur
message retour l'id créé.
A voir quand même s'ils n'ont pas prévu un truc en ce sens; cela me
semble du b.a-ba.
sinon ce serait effectivement très peu utilisable. Où peut être
fournissent-ils le source et tu pourrais le changer en conséquence ?

--
Roumegou Eric
Posté le 16 octobre 2017 - 10:50
Bonjour,
je relance sur le sujet.

Mon serveur d accés est sur une machine virtuelle avec WAMP d installé.
Le serveur d acces utilise donc Wamp en port 80 par défaut.

Mais quand je mets les codes suivants
SI SQLConnecteWS("http://SERVWAMP/WDSOAPDB_WEB/","CEGID","utilisateur","motdepasse","PMI","OLE DB", hODBC) ALORS
sCh_requete est chaîne ="SELECT NOKNLIGNOM,NOCTCODECP,NOCTCOMPCPT FROM NOMENC WHERE NOKTSOC='130' and NOKTCODPF='"+_code_pf+"'"
SI SQLExec(sCh_requete,"REQ_NOMENCLATURE") ALORS

TANTQUE SQLAvance("REQ_NOMENCLATURE")=0
[CODE]
FIN
SQLFerme("REQ_NOMENCLATURE")
SINON
SQLInfoGene("REQ_NOMENCLATURE")
Info("Erreur SQL : " + SQL.MesErreur)

FIN
SINON
SQLInfoGene()
Erreur("La connexion à la source de données CEGID a échoué." + RC + ...
"Code erreur : " + SQL.Erreur + RC + SQL.MesErreur)
FIN
SQLDéconnecte()
**
autant je passe le premier SI sqlconnecteWS, autant le sql exec m envoie dans le message d erreur

[MICROSOFT][Gestionnaire de Pilotes ODBC] source de données introuvable et nom de pilote non spécifié.

CEGID est le nom de la connexion ODBC sur ce serveur qui pointe vers un serveur SQL CEGID.

des idées ,
Merci.