PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Plusieurs bases et HExecuteRequêteSQL
Plusieurs bases et HExecuteRequêteSQL
Débuté par Gabriel Hautclocq, 17 oct. 2006 15:40 - 6 réponses
Posté le 17 octobre 2006 - 15:40
Bonjour,

Je voudrais savoir comment utiliser HExecuteRequêteSQL en faisant des requêtes SQL sur plusieurs bases (qui ont chacune une connexion), sachant que je ne peux spécifier qu'une seule connexion en paramètre.

Sachant que j'ai :
- Une base contenant des tables paramètres. Cette base ne change jamais et possède utilise la connexion conn_param.
- Une à plusieurs bases contenant des données, utilisant toujours la connexion conn_data.
- J'ai besoin d'utiliser le paramètre HRequêteSansCorrection car j'ai des requêtes non reconnues par Windev (et par conséquent de spécifier un nom de connexion)


Comment faire?
Posté le 17 octobre 2006 - 16:08
Bonjour,
C'est simple: tu ne peux pas, en tout cas en version 10. Il me semble que c'est une nouveauté de la version 11.

C'est d'ailleurs la raison pour laquelle l'intégralité des applications que je développe pour ma boite utilise la même base de données (mais des namespace différents), pour pouvoir faire des jointure entre des tables de différentes applications.

Frédéric.
Posté le 17 octobre 2006 - 16:49
Bonjour,

Je crains que la seule solution ne soit le passage par des vues : vues de
sélection dans les différents bases, puis opérations ensemblistes sur ces
vues. Une alternative peut être de faire une requête sur une table d'une
première base, puis en parcourant ce résultat (POUR TOUT ...), d'aller lire
la seconde base par des lectures directes pour compléter l'information.


Elian Lacroix
elian.lacroix@gmail.com
http://elianlacroix.blogspot.com/


"Gabriel Hautclocq" <ghautclocq@cgocean.com> a écrit dans le message de
news: 4534bdfb$1@news.pcsoft.fr...


Bonjour,

Je voudrais savoir comment utiliser HExecuteRequêteSQL en faisant des
requêtes SQL sur plusieurs bases (qui ont chacune une connexion), sachant
que je ne peux spécifier qu'une seule connexion en paramètre.

Sachant que j'ai :
- Une base contenant des tables paramètres. Cette base ne change jamais et
possède utilise la connexion conn_param.
- Une à plusieurs bases contenant des données, utilisant toujours la
connexion conn_data.
- J'ai besoin d'utiliser le paramètre HRequêteSansCorrection car j'ai des
requêtes non reconnues par Windev (et par conséquent de spécifier un nom
de connexion)


Comment faire?
Posté le 17 octobre 2006 - 18:09
SD est une source de donnees
HExécuteRequêteSQL(SD,MaConnexion,hRequêteSansCorrection,Requete)

Il se trouve que Gabriel Hautclocq a formulé :

Bonjour,

Je voudrais savoir comment utiliser HExecuteRequêteSQL en faisant des
requêtes SQL sur plusieurs bases (qui ont chacune une connexion), sachant que
je ne peux spécifier qu'une seule connexion en paramètre.

Sachant que j'ai :
- Une base contenant des tables paramètres. Cette base ne change jamais et
possède utilise la connexion conn_param. - Une à plusieurs bases contenant
des données, utilisant toujours la connexion conn_data. - J'ai besoin
d'utiliser le paramètre HRequêteSansCorrection car j'ai des requêtes non
reconnues par Windev (et par conséquent de spécifier un nom de connexion)


Comment faire?


--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Posté le 17 octobre 2006 - 19:11
Merci pierre, je connais la syntaxe de hexecuterequêteSQL ;)

Le problème c'est que je dois utiliser 2 connexions différentes. Ce n'est visiblement pas possible. La seule solution que j'ai trouvé est celle-ci (désolé pour l'exemple un peu idiot) :

Conn est la connexion à la premiere base (base des données utilisateur)
Conn_param est la connexion à la base paramètre

-----------------------
sdd est une Source de Données

HExécuteRequêteSQL(sdd, Conn, hRequêteSansCorrection, "SELECT ID_Produit, Lib_Produit, Typ_Produit FROM Produit, "+Conn_Param..BaseDeDonnées+".TypeProduit WHERE ID_TypeProduit=Typ_Produit AND TypeProduit.ID_TypeProduit=1")

--------------------------
Posté le 17 octobre 2006 - 19:43
j'utilises 3 connexions différentes décrites avec HDecritConnexion (une
en ODBC AS400, une en SQL Serveur et une autre en MySQL) simultanément
et je n'ai aucun problème

Gabriel Hautclocq a couché sur son écran :
Merci pierre, je connais la syntaxe de hexecuterequêteSQL ;)

Le problème c'est que je dois utiliser 2 connexions différentes. Ce n'est
visiblement pas possible. La seule solution que j'ai trouvé est celle-ci
(désolé pour l'exemple un peu idiot) :

Conn est la connexion à la premiere base (base des données utilisateur)
Conn_param est la connexion à la base paramètre

-----------------------
sdd est une Source de Données

HExécuteRequêteSQL(sdd, Conn, hRequêteSansCorrection, "SELECT ID_Produit,
Lib_Produit, Typ_Produit FROM Produit,
"+Conn_Param..BaseDeDonnées+".TypeProduit WHERE ID_TypeProduit=Typ_Produit
AND TypeProduit.ID_TypeProduit=1")

--------------------------


--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Posté le 17 octobre 2006 - 20:50
"Pierre BOUSQUET" <pb4807@hotmail.com> a écrit dans le message de news:
mn.8c237d6a4a7738bd.47088@hotmail.com...

j'utilises 3 connexions différentes décrites avec HDecritConnexion (une
en ODBC AS400, une en SQL Serveur et une autre en MySQL) simultanément
et je n'ai aucun problème


le pb n'est pas d'executer une requete sur la base 1 puis la base2, le pb
c'est d'exécuter la requete sur la base1 et la base2 en même temps :).

Gabriel Hautclocq a couché sur son écran :
Merci pierre, je connais la syntaxe de hexecuterequêteSQL ;)

Le problème c'est que je dois utiliser 2 connexions différentes. Ce n'est
visiblement pas possible. La seule solution que j'ai trouvé est celle-ci
(désolé pour l'exemple un peu idiot) :

Conn est la connexion à la premiere base (base des données utilisateur)
Conn_param est la connexion à la base paramètre

-----------------------
sdd est une Source de Données

HExécuteRequêteSQL(sdd, Conn, hRequêteSansCorrection, "SELECT ID_Produit,
Lib_Produit, Typ_Produit FROM Produit,
" Conn_Param..BaseDeDonnées ".TypeProduit WHERE
ID_TypeProduit=Typ_Produit
AND TypeProduit.ID_TypeProduit=1")

--------------------------

--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "