|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
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. " |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|