MVTNV
Messages postés19Date d'inscriptionsamedi 15 janvier 2005StatutMembreDernière intervention20 janvier 2008
-
19 janv. 2008 à 15:41
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 2013
-
20 janv. 2008 à 14:39
Bonjour,
Je voudrais lire en foxpro 2 tabels sql qui se trouvent sur 2 differantes serveurs internet.
Les 2 tabels sql doivent devenir 1 tabel sur le serveur dans notre bureaux.
Les 2 tabels sql contiennent chaqu'un le disponible de ce pay.
Maintenant comme ces 2 pays sont les plus grands producteurs de ces articles en Europe nous voudrions simmultannement rendre visible le disponible totale de ces 2 tabels dans 1 tabel.
Serveur 1
Tomates, tailles, nombre, prix
Pommes, tailles, nombre, prix
Serveur 2
Tomates, tailles, nombre, prix
Poires, tailles, nombre, prix
Serveur dans notre bureau Pommes, tailles, nombre, prix
Poires, tailles, nombre, prix
Tomates, tailles, nombre, prix
Tomates, tailles, nombre, prix
Je pense que ça doit être possible mais je me demande comment?
Un tabel je peut lire mais 2 tabels sur 2 differantes serveur internet et en même temp, la je ne sais plus.
MVTNV
Messages postés19Date d'inscriptionsamedi 15 janvier 2005StatutMembreDernière intervention20 janvier 2008 20 janv. 2008 à 13:41
Bonjour Michel,
Je fais en foxpro
Connstr = [driver={MySQL ODBC 5.1 Driver};Server= IP;DATABASE=NOM;UID=USER;PWD=MOT DE PASSE;OPTION=1]
h= Sqlstringconnect(Connstr)
SQLExec(h,"Select * from nom de la table";"nom du variable que vous voulez selectionner")
Select nom du variable que vous voulez selectionner
Browse
Et je obtient un table lisible en foxpro ou je peut selectionner une ligne et utiliser le contenant de la ligne.
La clause Union je ne connais pas
Est-ce que vous pourriez me donner un peux plus de renseignement s.v.p.?
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 20131 20 janv. 2008 à 14:39
pour bien préciser, il faut d'abord comprendre que SQLEXEC ne te donne pas une table, mais un curseur.
une table en foxpro, c'est un fichier dbf sur un disque. un curseur, c'est un jeu d'enregistrement extrait d'une table, ou créé par un SQLEXEC comme dans ton cas, ou par une vue.
le 3ème paramètre de ton SQLEXEC, celui que tu appelles "nom du variable que vous voulez sélectionner", c'est justement le nom du curseur qui sera créé, on parle aussi d'alias.
ton 1er SQLEXEC (sur ton serveur1) va donc te retourner le résultat dans un cursor1, le 2ème (vers le serveur2) va te retourner son résultat dans un cursor2 (il te faut juste lui donner un nom différent du 1er), et il te reste seulement à assembler les 2 dans un curseur final en utilisant la clause UNION (regarde l'aide de VFP sur ce sujet, ou bien achète le livre de Tamar Granor "Domptez les SQL de FoxPro", il est traduit en français, ou bien regarde l'aide sur ce sujet sur sqlpro.developpez.com)
Si tu préfères utiliser seulement du code foxpro pour obtenir ton curseur résultat final, c'est possible en utilisant un append from.