Bonjour à tous,

Voici un autre problème que j'ai et sur lequel je m'arrache les cheveux depuis plusieurs jours.

J'ai un Web Service qui est supposé ce connecter à une base de données dont il connait le chemin et exécuter des requêtes dessus, après il traite les résultats, etc ... Le problème vient au moment de la récupération des données dans la table de la base de données. Voici un extrait de mon code pour me connecter à la base de données :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
gcnxCnx_Access..Provider = "Microsoft.ACE.OLEDB.12.0"
gcnxCnx_Access..Utilisateur = ""
gcnxCnx_Access..MotDePasse = ""
gcnxCnx_Access..Serveur = gsBase
gcnxCnx_Access..BaseDeDonnées = ""
gcnxCnx_Access..Accès = hOLectureEcriture
gcnxCnx_Access..OptionsCurseur = hCurseurServeur
 
// Ouverture de la connexion
SI HOuvreConnexion(gcnxCnx_Access) ALORS
	RENVOYER Recuperation_Donnees_Table()
SINON
	Ajoute_Info_Log(HErreurInfo(hErrComplet))
 
	RENVOYER Faux
FIN
Ce code-ci renvoie vrai jusqu'à : "RENVOYER Recuperation_Donnees_Table()"

Le code de cette procédure étant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
PROCEDURE PRIVÉE Recuperation_Donnees_Table() : booléen
LOCAL
	i est un entier = 1
	sTables_intermediaires est une chaîne = Remplace(ExtraitChaîne(sTable,i," INNER JOIN "),["(",")"],"")
 
TANTQUE PAS (sTables_intermediaires ~= EOT OU sTables_intermediaires ~= "")
	SI PAS HDéclareExterne(sTables_intermediaires,sTables_intermediaires,gcnxCnx_Access) ALORS
		Ajoute_Info_Log("Les données n'ont pas été récuperées." + RC + HErreurInfo(hErrComplet))
		RENVOYER Faux
	FIN
	i++
	sTables_intermédiaires = ExtraitChaîne(ExtraitChaîne(sTable,i,"JOIN "),1," ON ")
FIN
 
RENVOYER Vrai
Là où ça bloque, c'est à l'appel : "HDéclareExterne(sTables_intermediaires,sTables_intermediaires,gcnxCnx_Access)" qui renvoie faux, alors que si je fais mes tests en test de procédure, cela fonctionne très bien.

Du coup, je n'arrive pas à comprendre ce qui peux clocher, sachant que ma connexion est belle et bien effectuée et que sTables_intermediaires contient bien les noms des tables utilisées dans la requête.

Merci à ceux qui auront le courage de me lire et de me répondre.

Bonne journée/soirée

Cordialement, Warren.