PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Pb requête SQL en accès distant sur base MySQL
Pb requête SQL en accès distant sur base MySQL
Débuté par patrick, 25 jan. 2006 16:01 - 2 réponses
Posté le 25 janvier 2006 - 16:01
Bonjour,

Si je teste ma requête par l'éditeur de requête en accès distant sur ma base MySQL, aucun problème ça marche.

Code SQL de ma requête :
SELECT Site.IDSite AS IDSite,
Site.IDWebmaster AS IDWebmaster,
Site.IDCategorie AS IDCategorie,
Site.titre AS titre,
Site.url_site AS url_site,
Site.img_site AS img_site,
Site.alt_logo AS alt_logo,
Site.descriptif AS descriptif,
Site.url_actu AS url_actu,
Site.affiliation AS affiliation,
Site.cpc AS cpc,
Site.valide AS valide,
Site.tri AS tri,
site_webmaster.mail AS mail,
site_webmaster.IDWebmaster AS IDWebmaster_si
FROM site_webmaster, Site
WHERE site_webmaster.mail = {Param1}
AND site_webmaster.IDWebmaster = site.IDWebmaster
ORDER BY url_site ASC

Je passe comme valeur à param1 : 'ffffffff@fffffff.com'

Par contre dès que j'exécute cette requête depuis mon programme, aucune erreur de signalée, mais aussi aucun résultat

ROCEDURE Requête_Recherche_Mail()

RqRechercheSiteParMail.Param1 = "'" + Recherche_Site + "'"

SI PAS HExécuteRequête(RqRechercheSiteParMail) ALORS
Erreur("Erreur d’initialisation de la requête"+RC+HErreurInfo())
RETOUR
FIN

HLitPremier(RqRechercheSiteParMail)
TANTQUE PAS HEnDehors()
//traitement du résultat de la requête

HLitSuivant(RqRechercheSiteParMail)
FIN
HAnnuleDéclaration(RqRechercheSiteParMail)

Recheche_site est un champ de saisie de type texte
Je donne comme valeur à RqRechercheSiteParMail.Param1, 'ffffff@ffff.com'


D'avance merci pour vos réponses
Posté le 25 janvier 2006 - 18:25
Pour résoudre ce problème, je suis passé par la fonction HExécuteRequêteSQL()

SQL est une chaîne
RqSQL est une Source de Données

SQL = "SELECT Site.IDSite AS IDSite, Site.IDWebmaster AS IDWebmaster, Site.IDCategorie AS IDCategorie, Site.titre AS titre, Site.url_site AS url_site, Site.img_site AS img_site, Site.alt_logo AS alt_logo, Site.descriptif AS descriptif, Site.url_actu AS url_actu, Site.affiliation AS affiliation, Site.cpc AS cpc, Site.valide AS valide, Site.tri AS tri" +...
" FROM Site, site_webmaster" +...
" WHERE site_webmaster.mail = '"+mail_webmaster+"'" +...
" AND site_webmaster.IDWebmaster = site.IDWebmaster" +...
" ORDER BY url_site ASC"

mail_webmaster est un champ de saisie

SI PAS HExécuteRequêteSQL(RqSQL, SQL) ALORS
Erreur("Erreur d’initialisation de la requête"+RC+HErreurInfo())
RETOUR
FIN

HLitPremier(RqSQL)
TANTQUE PAS HEnDehors()

//mon traitement du résultat


HLitSuivant(RqSQL)
FIN
HAnnuleDéclaration(RqSQL)

Si quelqu'un sait pourquoi cela marche avec HExécuteRequêteSQL() et pas avec HExécuteRequête() ... cela m'intéresse ?
Posté le 26 janvier 2006 - 18:51
Je ne sais pas si cela va t'aider

Mais moi j'utilise HExécuteRequêteSQL sur ma base de données MYSQL

Bonne Chance





lc_SQL est une chaine
ds_Site est une source de données

lc_sql = "SELECT Site.IDSite AS IDSite, "
lc_sql += "Site.IDWebmaster AS IDWebmaster, "
lc_sql += "Site.IDCategorie AS IDCategorie,"
lc_sql += "Site.titre AS titre,"
lc_sql += "Site.url_site AS url_site,"
lc_sql += "Site.img_site AS img_site,"
lc_sql += "Site.alt_logo AS alt_logo,"
lc_sql += "Site.descriptif AS descriptif,"
lc_sql += "Site.url_actu AS url_actu,"
lc_sql += "Site.affiliation AS affiliation,"
lc_sql += "Site.cpc AS cpc,"
lc_sql += "Site.valide AS valide,"
lc_sql += "Site.tri AS tri,"
lc_sql += "site_webmaster.mail AS mail,"
lc_sql += "site_webmaster.IDWebmaster AS IDWebmaster_si"
lc_sql += "FROM site_webmaster, Site"
lc_sql += "WHERE site_webmaster.mail = "" + {Param1} +"'"
lc_sql += "AND site_webmaster.IDWebmaster = site.IDWebmaster"
lc_sql += "ORDER BY url_site ASC"

SI PAS HExécuteRequêteSQL(ds_Site,connexionname?,lc_SQL) ALORS
Erreur("Erreur d’initialisation de la requête"+RC+HErreurInfo())
RETOUR
FIN


HLitPremier(ds_Site, sansrafraichissement)
TANTQUE PAS HEnDehors()
//traitement du résultat de la requête

variable = ds_Site.idcategorie


HLitSuivant(ds_Site)
FIN
HAnnuleDéclaration(ds_Site)