Accueil > > > BASE DE DONNÉ BDD VERS XML : CONVERSION D'UN RECORDSET VERS UN FLUX XML
BASE DE DONNÉ BDD VERS XML : CONVERSION D'UN RECORDSET VERS UN FLUX XML
Information sur la source
Description
Ce que fait le code: 1° connexion à la BDD (ODBC mais ça peut être n'importe quoi) 2° création de la requête et du recordset 3° génération du XML à la volée, sur tous les champs de tous les enregistrements. Personnalisez (osez! tunez!) la connexion ainsi que la requête SQL, et le tour est joué! En option, il est possible de rajouter un (des) arguments pour filtrer la requête (2eme partie) En option aussi, l'argument attr qui permet de passer les champs en tant qu'attributs: <item nom1="valeur1" nom2="val2" /> ... au lieu de: <item> <valeur1>nom1</valeur1> <val2>nom2</val 2> </item> ...
Source
- <%
- ' connexion ODBC + recordset
- Set Conn=Server.createobject("ADODB.Connection")
- Conn.open "Data source=nom_ODBC; User Id=nom_utilisateur; PASSWORD="
- Set rs=Server.createobject("ADODB.Recordset")
-
- ' création de la requête
- rs.open "SELECT * FROM nom_de_la_table", Conn
-
- ' génération du résultat sous format XML
- dim i, j, lstFields(), attr
- if isempty(request("attr")) then attr=false else attr=true
-
- Response.ContentType="text/XML"
- Response.write("<?xml version=""1.0"" encoding=""ISO-8859-1"" standalone=""yes""?>")
- Response.write("<items>")
- if rs.eof then
- Response.write("<error>Aucun résultat</error>")
- else
- do until rs.eof
- if attr then
- Response.write("<item ")
- for j = 0 to i
- Response.write(lstFields(j) & "=""" & rs(j).value & """ ")
- next
- Response.write("/>" & vbcr)
- else
- Response.write("<item>" & vbcr)
- for j = 0 to i
- Response.write("<" & lstFields(j) & ">" & rs(j).value & "</" & lstFields(j) & ">" & vbcr)
- next
- Response.write("</item>" & vbcr)
- end if
- rs.movenext
- loop
- rs.close
- end if
- Response.write("</items>")
- Set rs=nothing
- Set Conn=nothing
- %>
-
-
- <%
- ' 2eme VERSION : fournir un argument sur l'appel de cette page (?id=55 ...)
- ' connexion ODBC + recordset
- Set Conn=Server.createobject("ADODB.Connection")
- Conn.open "Data source=nom_ODBC; User Id=nom_utilisateur; PASSWORD="
- Set rs=Server.createobject("ADODB.Recordset")
-
- ' création de la requête
- if isempty(request("id")) then var_id=0 else var_id=request("id")
- rs.open "SELECT * FROM nom_de_la_table WHERE nom_de_la_colonne=" & var_id, Conn
-
- ' génération du résultat sous format XML
- Response.ContentType="text/XML"
- Response.write("<?xml version=""1.0"" encoding=""ISO-8859-1"" standalone=""yes""?>")
- Response.write("<items>")
- if rs.eof then
- Response.write("<error>Aucun résultat</error>")
- else
- do until rs.eof
- Response.write(" <item>")
- for each fld in rs.fields
- Response.write("<" & fld.name & ">" & fld.value & "</" & fld.name & ">")
- next
- Response.write(" </item>")
- rs.movenext
- loop
- rs.close
- end if
- Response.write("</items>")
- Set rs=nothing
- Set Conn=nothing
- %>
<%
' connexion ODBC + recordset
Set Conn=Server.createobject("ADODB.Connection")
Conn.open "Data source=nom_ODBC; User Id=nom_utilisateur; PASSWORD="
Set rs=Server.createobject("ADODB.Recordset")
' création de la requête
rs.open "SELECT * FROM nom_de_la_table", Conn
' génération du résultat sous format XML
dim i, j, lstFields(), attr
if isempty(request("attr")) then attr=false else attr=true
Response.ContentType="text/XML"
Response.write("<?xml version=""1.0"" encoding=""ISO-8859-1"" standalone=""yes""?>")
Response.write("<items>")
if rs.eof then
Response.write("<error>Aucun résultat</error>")
else
do until rs.eof
if attr then
Response.write("<item ")
for j = 0 to i
Response.write(lstFields(j) & "=""" & rs(j).value & """ ")
next
Response.write("/>" & vbcr)
else
Response.write("<item>" & vbcr)
for j = 0 to i
Response.write("<" & lstFields(j) & ">" & rs(j).value & "</" & lstFields(j) & ">" & vbcr)
next
Response.write("</item>" & vbcr)
end if
rs.movenext
loop
rs.close
end if
Response.write("</items>")
Set rs=nothing
Set Conn=nothing
%>
<%
' 2eme VERSION : fournir un argument sur l'appel de cette page (?id=55 ...)
' connexion ODBC + recordset
Set Conn=Server.createobject("ADODB.Connection")
Conn.open "Data source=nom_ODBC; User Id=nom_utilisateur; PASSWORD="
Set rs=Server.createobject("ADODB.Recordset")
' création de la requête
if isempty(request("id")) then var_id=0 else var_id=request("id")
rs.open "SELECT * FROM nom_de_la_table WHERE nom_de_la_colonne=" & var_id, Conn
' génération du résultat sous format XML
Response.ContentType="text/XML"
Response.write("<?xml version=""1.0"" encoding=""ISO-8859-1"" standalone=""yes""?>")
Response.write("<items>")
if rs.eof then
Response.write("<error>Aucun résultat</error>")
else
do until rs.eof
Response.write(" <item>")
for each fld in rs.fields
Response.write("<" & fld.name & ">" & fld.value & "</" & fld.name & ">")
next
Response.write(" </item>")
rs.movenext
loop
rs.close
end if
Response.write("</items>")
Set rs=nothing
Set Conn=nothing
%>
Conclusion
inconvénient: le fichier porte quand même l'extension .asp (sauf à reconfigurer le serveur IIS je suppose que c'est possible mais bon)... à priori c'est réglé: grâce à cette instruction qui permet de reconnaitre le flux comme un XML : Response.ContentType="text/XML"
avantage: mise à jour dynamique d'une liste ou un tableau par exemple...
note: pour le 1er exemple penser à limiter le nombre d'enregistrements: SELECT TOP 30 * FROM ... (par exemple pour les 30 premières lignes) sinon le script renvoie l'intégralité de la table. Limiter aussi le nombre de champs.
Historique
- 27 juin 2007 10:31:42 :
- ajout du Response.ContentType="text/XML" + Charset sur les conseils de Roro
- 11 juillet 2007 16:29:50 :
- option "attr" pour générer les champs et valeurs en tant qu'attibuts du noeud <item /> au lieu de noeuds-enfants.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Créer un xml [ par cmjn ]
CMJNBonjourJ'ai monté une BDD en asp qui récupère des données texte et transfert des images sur un serveur. J'aimerais créer un xml répertoriant mes i
Recupération d'images d'une bdd access [ par djh3o ]
comment recupérer en asp une image ole d'une bdd access sachant k'elle est dans mon recordset.. mais je n'arrive pas a l'afficher...j'ai fait deux pag
Recuperation de donnée d'un fichier xml pour ajouter dans une BDD sql server 2000. [ par nicko59 ]
Amis du jour, bonjour,Bon, voila, j'ai un p'tit soucis...je n'arrive pas à récupérer les bonnes données de mot fichier xml...en fa
Génération d'XML avec ASP.net via une BDD [ par fabienfs ]
Bonjour, J'ai conçu une galerie produits en Flash et j'ai besoin de récupérer dynamiquement des donnés via du XML. Pour l'instant mes données sont don
Remplir un dataset avec un XML [ par kaygee ]
Salutj'ai un petit souci, j'essaye de remplir un dataset avec mon XML, mais il me répond root element is missing, <b
élément xml vide [ par tortuedu74 ]
Bonjour, Je voudrais savoir comment tester un élément vide.Par exemple:mon XML:<a> <Items> <Item>Test avec une entite: &
multiple xml datagrid [ par cailloux79 ]
est-il possible d'afficher plusieurs fichiers xml dans un datagrid en flex?
Suppression dans un fichier xml [ par debladz ]
Bonjour,Pour les besoin d'une application, je récupère des données d'un fichier XML et je les affiche dans un gridview.Jusque là, pas de soucis.Je réu
Fichier access volumineux [ par CptDuff ]
Bonjour à tous donc voila je suis entrain de créer une BDD sous access 2000 et ma base n'est même pas renseigné qu'elle fait déjà 100Mo. J'ai remarqué
service web [ par dodofolie ]
Salut tt le monde voila g une question a propos de l'appel du service web ds une page web(il faut que j'affiche les employes dans une liste d'un proje
|
Derniers Blogs
SQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATIONSQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATION par christian
Cette fonctionnalité à vue le jour dans Ado.Net 2.0 et s'appuie sur SQL Server 2005 (et plus) même si elle fonctionne avec SQL Server 2000. Le principe de fonctionnement côté applicatif est assez simple, on fournit une requête et lorsque le résultat d...
Cliquez pour lire la suite de l'article par christian [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|