MyRemoteSql fournit un WebService utilisant le protocole SOAP. Ce WebService permet d'exécuter une requête SQL sur N Serveurs. Le client peut être écrit en Php, Python, Java ... tout langage implémentant le protocole SOAP.
Localisation : http://AdresseduServeur/myremotesql/ws_mrssoap.php
Fonction distante :
function wsExecuteSql($pTxtSql,$pServeurs,$pTypeSortie,$pPreSortie)
Arguments :
$pTxtSql : string requête SQL
$pServeurs : array tableau des serveurs au format (No Id serveur; nom serveur;ip ou nom serveur;port mysql;nom de base;utilisateur;mot de passe;)
$pTypeSortie : string type de sortie XML, HTML, CSV, Texte
$pPreSortie : string type de présentation de sortie S-SQL ou SQL-S
Retour : un tableau contenant la sortie
// Librairie nusoap include('Lib/nusoap.php'); // définition de la liste des serveurs à traiter $listServeurs = array(); $listServeurs[]="1;Mysql Local;localhost;3306;test;root;;"; $listServeurs[]="2;Mysql Local de test;localhost;3306;test;root;;"; // définition de l'Url du Webservice $urlWebService = 'http://127.0.0.1/test/myremotesql/ws_mrssoap.php'; // définition de la requête SQL à exécuter (Select, Insert ...) $txtSql = "show tables"; // définition du type de sortie $typeSortie = "XML"; // définition des parametres du Webservice (Requete SQL, Liste de serveurs, type de sortie) $param = array('pTxtSql' => $txtSql, 'pServeurs' => $listServeurs, 'pTypeSortie' => $typeSortie, 'pPreSortie'=> $preSortie); // Création du client SOAP $client = new soapclient($urlWebService); // Appel de la fonction distante $result = $client->call('wsExecuteSql', $param); // Erreur ? if($client->fault) { print "Erreur ".$result['faultcode'] ." ". $result['faultstring']; } // affichage BRUT du résultat var_dump($result); // Exploitation du résultat ... //
MyRemoteSql fournit un WebService utilisant le protocole XML-RPC. Ce WebService permet d'exécuter une requête SQL sur N Serveurs. Le client peut être écrit en Php, Python, Java ... tout langage implémentant le protocole XML-RPC.
Localisation : http://AdresseduServeur/myremotesql/ws_mrsxmlrpc.php
Fonction distante :
function wsExecuteSql($pTxtSql,$pServeurs,$pTypeSortie)
Arguments :
$pTxtSql : string requête SQL
$pServeurs : array tableau des serveurs au format (No Id serveur;nom serveur;ip ou nom serveur;port mysql;nom de base;utilisateur;mot de passe;)
$pTypeSortie : string type de sortie XML, HTML, CSV, Texte
$pPreSortie : string type de présentation de sortie S-SQL ou SQL-S
Retour : un tableau contenant la sortie
Rebol [ title: "Exemple de client Xml-RPC à adapter" auteur: "myRemoteSql" commentaires: "Utilise Rebol + librairies XML-RPC" ] ; Includes des librairies XML-RPC do %Lib/xml-object.r do %Lib/xml-parse.r do %Lib/xmlrpc-client.r do %Lib/xmlrpc-marshaler.r do %Lib/xml-writer.r ; ; Définition le la Requête SQL txtSql: "show databases" ; Définition du type de Sortie typeSortie: "XML" ; Définition de la présentation de Sortie preSortie: "S-SQL" ; Définition de l'Url du webService, à modififier url: make url! http://127.0.0.1/myremotesql/ws_mrsxmlrpc.php ; Définition de la liste des serveurs : peut-être récupérée d'un fichier, d'une table ... listServeurs: make hash! ["Serveur 1" "1;Serveur 1;localhost;3306;test;root;;" "Serveur 2" "2;Serveur2;localhost;3306;test;root;;"] ; Connexion au Webservice remote: make xmlrpc-client [] remote/set-server url ; Mode Debug : mettre à true ;remote/set-debug true ; Récup de la liste des méthodes du WebServices print remote/exec [system.listMethods] ; Appel de la fonction distante resultat: remote/exec [mrs.wsExecuteSql txtSql listServeurs typeSortie preSortie] ; Affichage du résultat brut, le résultat est un Hash! print resultat ; Exploitation du résultat ... à personnaliser ... Mise à jour IHM, SGBD, Fichier, Mail ... write %result.txt resultat ; ; Fin programme : arrêt + Quit Input quit