PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WINDEV Mobile (earlier versions)
→
Requêtes bloque sans erreur
Requêtes bloque sans erreur
Started by Damien Cebrian, Apr., 13 2018 3:40 PM - No answer
Connect yourself…
Damien Cebrian
#1
Posted on April, 13 2018 - 3:40 PM
Bonjour,
Je développe une application qui s'utilise en mode Online ou Offline selon le besoin.
Pour cela tous mes fichiers de l'analyse sont en mode fichier classic et au besoin je change la connexion de certains pour que l'appli aille chercher les données sur mon serveur hfsql avec la commande hchangeconnexion.
Avant chaque requête je lance une procédure qui vérifie si l'appli est en mode "Online" et connecte les fichiers à la base client/serveur.
Voici son code :
Procedure
test_bdd
(
)
SI
gb
Arriere_plan
=
Faux
ALORS
//Si l'appli n'est pas en arrière plan
gb
Reconnexion_encours
=
Vrai
ecrit_log
(
"FUNC test_bdd START"
)
SI
gb
Mode_hors_ligne
=
Faux
ALORS
//Si l'appli est en mode "Online"
n
Try
est un entier
=
0
Multitâche
(
-
1
)
BOUCLE
(
10
)
SI
SocketExiste
(
"test"
)
ALORS
SocketFerme
(
"test"
)
SI
SocketConnecte
(
"test"
,
gn
PORT
,
gs
IPServeur
) =
Vrai
ALORS
//On test l'accès au port de la base
//SI InternetConnecté() = vrai alors
// Si on a récupéré internet on sors de la boucle
SORTIR
FIN
n
Try
+
+
ecrit_log
(
"Tentative de connexion "
+
n
Try
+
"/10"
)
Multitâche
(
-
1
)
SI
n
Try
=
10
ALORS
// Au bout de 10 essai on arrête de tester
ToastAffiche
(
"Connexion au serveur impossible"
)
ecrit_log
(
"FUNC test_bdd STOP ERR SOCKET"
)
gb
Reconnexion_encours
=
Faux
RENVOYER
Faux
FIN
Multitâche
(
-
400
)
FIN
connexion
est une chaîne
connexion
=
HListeConnexion
(
hLstOuvert
)
Multitâche
(
-
1
)
SI
ChaîneOccurrence
(
connexion
,
"Serveur"
) =
0
ALORS
//Si on a pas de connexion d'ouverte pour le serveur
Multitâche
(
-
1
)
HFermeConnexion
(
Serveur
)
//On ferme une connexion au cas ou
SI
HOuvreConnexion
(
Serveur
) =
Vrai
ALORS
Multitâche
(
-
1
)
HChangeConnexion
(
garage
,
Serveur
)
//Serveur est le nom de la connexion client/serveur dans l'analyse
...
HChangeConnexion
(
mp
,
Serveur
)
ecrit_log
(
"Après : "
+
HListeConnexion
(
hLstOuvert
)
)
ecrit_log
(
"FUNC test_bdd STOP OK"
)
gb
Reconnexion_encours
=
Faux
RENVOYER
Vrai
SINON
ToastAffiche
(
"Connexion au serveur impossible"
)
ecrit_log
(
"FUNC test_bdd STOP ERR - "
+
ErreurInfo
(
)
)
gb
Reconnexion_encours
=
Faux
RENVOYER
Faux
FIN
SINON
//Si on était co alors on lance un hreconnecte
SI
HReconnecte
(
) =
Faux
ALORS
ecrit_log
(
"RECO "
+
ErreurInfo
(
)
)
ecrit_log
(
"FUNC test_bdd STOP RECO"
)
gb
Reconnexion_encours
=
Faux
RENVOYER
Vrai
FIN
SINON
ecrit_log
(
"FUNC test_bdd STOP MODE HORSLIGNE"
)
gb
Reconnexion_encours
=
Faux
RENVOYER
Faux
FIN
FIN
CAS EXCEPTION
:
ecrit_log
(
"EXCEPTION test_bdd : "
+
ErreurInfo
(
errComplet
)
)
gb
Reconnexion_encours
=
Faux
Tout celà fonctionne bien sauf que, quand l'application reste longtemps inactive, la fonction test_bdd fonctionne bien et le hreconnect se lance sans erreur mais a la première requête lancée l'application fige et n'affiche même pas de message d'erreur comme quoi la requête n'a pas pu être initialisée.
Voici comment je lance mes requêtes
SI
HExécuteRequête
(
REQ_
SEL_BAN_ID
,
hRequêteDéfaut
) <
>
Faux
ALORS
//Mon traitement
SINON
Info
(
HErreurInfo
(
)
)
FIN
Est-ce que quelqu'un aurait une idée de pourquoi celà bloque ?
Report
0
0
→ Go back to WINDEV Mobile (earlier versions)
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Off-topic
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text