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</ val2>
</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
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Forum
RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|