> Tech > Accès à  SQL Server via HTTP

Accès à  SQL Server via HTTP

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Avec SQL Server 2000, on peut saisir une instruction SQL dans une URL de Microsoft Internet Explorer (IE) 5.0 et récupérer des enregistrements au format XML. La pseudo-requête URL suivante présente les divers composants de la requête :

http:///

?sql=+FOR+XML+RAW

Avant tout, la requête utilise le protocole HTTP,

Accès à  SQL Server via HTTP

ce qui ouvre
une base de clients assez large pour tout système que l’on peut créer. La requête
dirige ensuite sa demande vers le serveur Web, Microsoft Internet Information
Server (IIS), par le biais d’une racine virtuelle qu’il faut configurer sur
le serveur IIS pour utiliser les extensions XML de SQL Server.

Ensuite, la requête demande les données désirées. Lors d’une
demande de données auprès du serveur Web, on utilise généralement un HTML FORM
avec l’une des deux méthodes standard de HTML FORM : GET ou POST. GET transmet
les données du formulaire client au serveur Web sous la forme de paires nom/valeur
accolées à  l’URL. Cependant, ce mécanisme présente plusieurs inconvénients,
notamment une longueur d’URL et une sécurité limitées. POST, la méthode favorite
des développeurs, transmet les données du formulaire sous la forme de paires
nom/valeur stockées à  l’intérieur même du corps de la requête HTTP. Les exemples
de cet article utilisent la méthode GET pour envoyer les requêtes à  la base
de données, afin que l’on puisse voir la requête de données.

On peut également utiliser des instructions SQL ou des procédures
cataloguées pour accéder à  des données au format XML. Ou on peut exécuter un
template XML, un document XML contenant une ou plusieurs requêtes, instructions
ou grams de mise à  jour valides. Les templates sont structurés de la manière
suivante :

com:xml-sql » name1=’value1′

name2=value2’> sql statement(s)

On peut invoquer des templates en les intégrant à  la requête
GET ou POST ou en les appelant comme des fichiers sauvegardés dans le répertoire
virtuel du serveur Web.

Si les requêtes SQL sont longues, IE ne peut pas les afficher
dans sa zone de saisie adresse, et on perd du temps à  les saisir encore et encore
pendant les tests. Pour toutes ces raisons et bien d’autres, on peut stocker
des requêtes templates dans un fichier du répertoire virtuel, puis y faire référence
comme suit :

http://auril/Northwind/myquery.xml

La requête myquery.xml demande des informations sur la commande correspondant
à  une ID d’un client donné, et se présente de la manière suivante :


SELECT OrderID, OrderDate, RequiredDate,
ShippedDate FROM ORDERS
WHERE CustomerID=? ORDER BY OrderID XML RAW
<
On peut aussi utiliser des paramètres avec les templates de requêtes, puis associer
les requêtes avec XSL (Extensible Style Language) pour offrir un substitut rapide
au code ASP (Active Server Pages) qui interroge une base de données et formate
les résultats en tables HTML. XSL indique comment formater ou afficher les données
XML. L’utilisation de requêtes modèles avec les feuilles de style XSL de cette
manière ressemble à  l’utilisation de fichiers HTX (Hypertext Markup Language
eXtension) avec IDC (Internet Database Connector), remplacés et améliorés par
ASP. Même si les fonctions XML de SQL Server ne peuvent pas à  elles seules remplacer
ASP, pour la récupération simple de données, les fonctions XML sont plus rapides
et plus faciles à  mettre en oeuvre. L’écran 1 illustre le résultat de la requête
simple ci-dessous, qui combine un template XML et XSL :

http://auril/Northwind/myquery
.xml?CustomerID=vinet&xsl=ptab.xsl

Téléchargez cette ressource

Guide de Sécurité IA et IoT

Guide de Sécurité IA et IoT

Compte tenu de l'ampleur des changements que l'IA est susceptible d'entraîner, les organisations doivent élaborer une stratégie pour se préparer à adopter et à sécuriser l'IA. Découvrez dans ce Livre blanc Kaspersky quatre stratégies efficaces pour sécuriser l'IA et l'IoT.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010