PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → requete SQL - Message d'erreur
requete SQL - Message d'erreur
Iniciado por loic.monet, 25,abr. 2019 15:06 - 3 respuestas
Publicado el 25,abril 2019 - 15:06
bonjour a tous,

Une question de débutant, merci de votre indulgence.
Je souhaite exécuter une requete sur un serveur Hyperfile HF SQL.
Le code que j'utilise est en gros ci dessous, je vais chercher les paramètres dans un fichier ini mais bon ça change pas grand chose. La table T_Type_Groupe existe bien dans la base de données request
La question : J'ai été obligé de créer une analyse avec la table T_Type_Groupe pour que le code ci dessous fonctionne, y a t il une possibilité de se passer d'analyse ? Merci beaucoup

cnxDataConnexion est une Connexion
sDataServeur est une chaîne
nDataPort est un entier
sDataUtilisateur est une chaîne
sDataMotDePasse est une chaîne
sDataBaseDeDonnees est une chaîne

Ma_Requete est une chaîne
Ma_Source_Perso est une Source dede Données
Mon_Compteur est un entier
Valeur_Retour est un booléen

sDataServeur = "RMFRLMBF101"
nDataPort = 4900
sDataUtilisateur = "admin"
sDataMotDePasse = ""
sDataBaseDeDonnees = "request"
Ma_Requete = "SELECT * FROM T_Type_Groupe"

// Test Connexion
cnxDataConnexion..Serveur = sDataServeur+":"+NumériqueVersChaîne(nDataPort)

cnxDataConnexion..Utilisateur = sDataUtilisateur

cnxDataConnexion..MotDePasse = sDataMotDePasse

cnxDataConnexion..BaseDeDonnées = sDataBaseDeDonnees

cnxDataConnexion..Provider = hAccèsHFClientServeur

cnxDataConnexion..Accès = hOLectureEcriture

cnxDataConnexion..OptionsCurseur = hCurseurClient

// Ouverture de la connexion

SI PAS HOuvreConnexion(cnxDataConnexion) ALORS

Erreur("Attention Mesdames zé Messieurs Problème de connexion à la base de données : " + HErreurInfo())
Ferme

SINON
//HChangeConnexion("*",cnxDataConnexion)
Valeur_Retour = HExécuteRequêteSQL(Ma_Source_Perso,cnxDataConnexion,hRequêteDéfaut,Ma_Requete)
SI Valeur_Retour ALORS
HLitPremier(Ma_Source_Perso)
TANTQUE PAS HEnDehors(Ma_Source_Perso)
Mon_Compteur++

HLitSuivant(Ma_Source_Perso)
FIN

Info("Nb enregistrements : "+NumériqueVersChaîne(Mon_Compteur))
SINON
Info("Erreur Exécution Requête SQL." + CRLF + Ma_Requete + CRLF + HErreurInfo())
FIN

HFermeConnexion(cnxDataConnexion)


FIN
Miembro registrado
299 mensajes
Publicado el 25,abril 2019 - 16:39
On ne voit pas le texte de la requete.
Sachez que vous pouvez tout faire en une fois

En syntaxe SQL = "Select count(*) as nb from latable"
et après le HTlitPremier vous récupérez avec Ma_Source_Perso.nb un etier correspondant au nombre d'enregistrements
Publicado el 25,abril 2019 - 17:44
Merci Michel,

Il n'y a pas d'erreur de syntaxe SQL (requete triviale : select * from NomTable).
Mais WinDev me signale une erreur : Table NomTable inexistante. Cette table existe bien dans ma base et elle est correctement orthographié. Mais WinDev semble m'obliger à créer une analyse avec les tables que je souhaite utiliser dans mes requêtes. Quand je le fais (création analyse + Table NomTable) il n'y a plus d'erreurs SQL et mon code fonctionne parfaitement.
Est il possible de se passer d'analyse pour effectuer une requete ?
Merci d'avance
Miembro registrado
2 mensajes
Publicado el 26,abril 2019 - 05:43
Bonjour,

Essaye avec "hRequeteSansCorrection" à la place de "hRequeteDefaut".

Cordialement.