Voila, j'ai pris une petite heure avant de me coucher pour vous faire ce petit script qui peut s'avérer utile surtout quand on a juste un navigateur sous la main.
Ce script vous permet de visualiser les tables d'une base, les propriétés de la connexion, et le contenu des tables, il permet aussi de trier par colonne de façon croissante ou décroissante.
J'ai essayé avec MySQL et ACCESS et cela semble passer, je pense que pour une BASE SQL Serveur, cela devrait marcher (si vous avez testé et que ça marche dites-le moi :) )
N'oubliez pas de changer les paramètres dans le haut dans "La Config"
Vous verrez, j'y ai intégré ma fonction de paging que j'avais déposé il y a qq jours sur le site.
Source / Exemple :
<%
Option Explicit
Response.Buffer = True
%>
<!--#include file="adovbs.inc"-->
<%
' ************************************************************
' Code Réalisé par Nicolas SOREL ( Nix pour les intimes :) )
' Pour ASPFr.com
' Retrouvez d'autres scripts ASP sur www.ASPFr.com
' Vous avez le droit d'utiliser ce script dans vos pages mais si vous souhaitez
' l'exposer sur un autre site de programmation merci de me contacter
' (contact@vbfrance.com)
' ************************************************************
%>
<html>
<head>
<title>Visualiseur de table d'une base de données</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#0000FF" alink="#FF0000">
<font face="Verdana" size="2">
<%
Dim NomPage, MonDSN, MaConnexion, ServerAddress, DBName, UID, Password
Dim NumPageEnCours, TaillePage, MaxPages, MaxEnrgs, CombienDeRecs, MonObjRS
Dim NbPropriete, MaReqSQL, NbChamp, i, j, AfficheTableSys, AfficheTable
NumPageEnCours = Request("quelpage")
If NumPageEnCours = "" then NumPageEnCours = 1
TaillePage = Request("taillepage")
If TaillePage = "" Then TaillePage = 16
' Si vous souhaitez mettre vous même la taille maxi du nombre d'enregeistrement par page
' mettez en commentaire les 2 lignes précédentes et mettez par ex : TaillePage = 16
' *****************************************************
' *************** La Config **************************
' *****************************************************
' Les choses paramètrablent sont ici :)
NomPage = Request.ServerVariables("SCRIPT_NAME") ' Nom du script (si vous souhaitez changer le nom du fichier ASP
AfficheTableSys = False ' Si vous souhaitez afficher les tables systèmes, mettez True
' Config pour une Base MySQL
ServerAddress = "localhost" ' Serveur MySQL
DBName = "NomDeLaBase" ' Nom de la Base de données
UID = "VotreLogin" ' Nom d'utilisateur
Password = "VotreMotDePasse" ' Mot de Passe
' Construcion de la chaine ODBC pour MySQL
MonDSN = "driver={MySql};server=" & ServerAddress & ";db=" & DBName & ";user id=" & UID & ";pwd=" & Password & ";option=16386"
' Config pour une base ACCESS
' Si vous voulez tester avec une base Access, mettez en commentaire les lignes
' au dessus pour le paramètrage MySQL et "décommenté la ligne suivant en modifiant le nom du fichier
' MonDSN = "DBQ=" & Server.MapPath("VotreFichierMDB.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
' *****************************************************
' *************** FIN Config *************************
' *****************************************************
Set MaConnexion = Server.CreateObject("ADODB.Connection")
MaConnexion.ConnectionTimeout = 30
MaConnexion.CommandTimeout = 30
MaConnexion.Open MonDSN
' Les propriétés de la connexion
If Request("prop") = "OUI" Then
%>
<div align="center"><font face="Verdana" size="2"><b><a href="<%=NomPage %>"><< Retour à la liste des tables</a></b></font></div>
<table border="1" cellspacing="0" cellpadding="4" align="center" bordercolor="#000000">
<tr><td bgcolor="#E0E0E0"><font face="Verdana" size="2"><b>N°</b></font></td><td bgcolor="#E0E0E0"><font face="Verdana" size="2"><b>Propriétés de la connexion</b></font></td><td bgcolor="#E0E0E0"><font face="Verdana" size="2"><b>Valeur</b></font></td></tr>
<%
NbPropriete = MaConnexion.Properties.Count
For i = 0 to NbPropriete - 1
%><tr><td><font face="Verdana" size="2"><%=i%></font></td><td><font face="Verdana" size="2"><b><%=MaConnexion.Properties(i).Name%></b></font><td><font face="Verdana" size="2"><%=MaConnexion.Properties(i)%> </font></td></tr><%
Next
%>
</table>
<div align="center"><font face="Verdana" size="2"><b><a href="<%=NomPage %>"><< Retour à la liste des tables</a></b></font></div>
<%
End If
' La liste des tables
If Request("table") = "" And Request("prop") = "" Then
%>
<table border="1" cellspacing="0" cellpadding="5" align="center" bordercolor="#000000">
<tr>
<td align="center" bgcolor="#E0E0E0"><font face="Verdana" size="2"><b>Liste des tables de la base "<%=MaConnexion.Properties(0)%>"<br>
Type de base : <%=MaConnexion.Properties(11)%></b></font></td>
</tr>
<%
Set MonObjRS = MaConnexion.OpenSchema(adSchemaTables)
Do While Not MonObjRS.EOF
AfficheTable = False
If AfficheTableSys = False Then
If MonObjRS.Fields("TABLE_TYPE") <> "SYSTEM TABLE" Then
AfficheTable = True
End If
Else
AfficheTable = True
End If
If AfficheTable = True Then Response.write "<tr><td><font face=""Arial"" size=""2""><b><A HREF=""" & NomPage & "?table=" & MonObjRS.Fields("TABLE_NAME") & """>" & MonObjRS.Fields("TABLE_NAME") & "</a> ( type : " & MonObjRS.Fields("TABLE_TYPE") & ")</font></td></tr>"
MonObjRS.MoveNext
Loop
%>
<tr>
<td align="center" bgcolor="#008000"><b>
<a href="<%=NomPage%>?prop=OUI"><font face="Verdana" size="2" color="#FFFFFF">Liste des propriétés de la connexion</font></a></b>
</td>
</tr>
</table>
<%
End If
' Affiche le contenu d'une table
If Request("table") <> "" Then
Set MonObjRS = Server.CreateObject("ADODB.RecordSet")
MonObjRS.cursorlocation = aduseclient
MonObjRS.cachesize = 5
MaReqSQL = "SELECT * FROM " & Request("table")
If Request("ASC") <> "" Then
' Si un champ à été cliqué pour un affichage Ascendant
MaReqSQL = MaReqSQL & " ORDER BY " & Request("ASC") & " ASC"
ElseIf Request("DESC") <> "" Then
' Si un champ à été cliqué pour un affichage Descendant
MaReqSQL = MaReqSQL & " ORDER BY " & Request("DESC") & " DESC"
End If
MaReqSQL = MaReqSQL & ";"
MonObjRS.Open MaReqSQL, MaConnexion
MonObjRS.pagesize = TaillePage
MaxPages = CInt(MonObjRS.pagecount)
MaxEnrgs = CInt(MonObjRS.pagesize)
If Not MonObjRS.EOF Then MonObjRS.absolutepage = NumPageEnCours
CombienDeRecs = 0
NbChamp = MonObjRS.Fields.count
%>
<table border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td><font face="Verdana" size="2"><b><a href="<%=NomPage %>"><< Retour à la liste des tables</a></b></font></td>
<td><font face="Verdana" size="2">Base : <b><%=MaConnexion.Properties(0)%></b></font></td>
<td><font face="Verdana" size="2">Table : <b><%=request("table")%></b> qui a <%=NbChamp%> champ(s)</font></td>
<%If Request("ASC") <> "" Then%>
<td><font face="Verdana" size="2">Tri ascendant sur le champ : <b><%=request("ASC")%></b></font></td>
<%ElseIf Request("DESC") <> "" Then%>
<td><font face="Verdana" size="2">Tri descendant sur le champ : <b><%=request("DESC")%></b></font></td>
<%End If%>
</tr>
</table><br>
<table width="100%" border="1" cellspacing="0" cellpadding="2" align="center" bordercolor="#000000">
<tr>
<%
For j = 0 To NbChamp - 1
Response.write "<td bgcolor=""#E0E0E0""><font face=""Verdana"" size=""2""><b>" & MonObjRS.Fields(j).Name & "</b><br><font size=""1""><b><A HREF=""" & NomPage & "?table=" & Request("table") & "&ASC=" & MonObjRS.Fields(j).Name & """>ASC</A>/<A HREF=""" & NomPage & "?table=" & Request("table") & "&DESC=" & MonObjRS.Fields(j).Name & """>DESC</A></b></font><br>( type : " & MonObjRS.Fields(j).Type & ")</font></td>"
Next
%>
</tr>
<%
Do UNTIL MonObjRS.EOF OR CombienDeRecs >= MaxEnrgs
Response.write "<tr>"
For j = 0 To NbChamp - 1
Response.write "<td><font face=""Arial"" size=""2"">" & MonObjRS.Fields(j).Value & "</font></td>"
Next
Response.write "</tr>"
CombienDeRecs = CombienDeRecs + 1
MonObjRS.MoveNext
Loop
%>
</tr>
</table>
<%Call PagingBar()%>
<%
End If
%>
<br><br><div align="right"><font face="Verdana" size="1">Réalisé par N.SOREL<br>D'autres Scripts ASP sur <a href="http://www.aspfr.com/">ASPFr.com</a></font></div>
</font>
</body>
</html>
<%
On Error Resume Next
MonObjRS.Close
Set MonObjRS = Nothing
MaConnexion.CLose
Set MaConnexion = Nothing
%>
<%
Sub PagingBar()
Dim StrHTML
Dim PageEnCours
Dim CompteurFin, CompteurDebut
Dim i, LesVars
Dim Item
If MaxPages <> 0 Then
PageEnCours = Request.ServerVariables("script_name")
Response.Write "<table rows=""1"" cols=""1"" width=""97%""><tr>"
Response.Write "<td>"
Response.Write "<font size=""2"" color=""#000000"" face=""Verdana, Arial,Helvetica, sans-serif"">"
LesVars = ""
For each Item In Request.Form
If LCase(Item) <> "quelpage" And LCase(Item) <> "taillepage" Then
LesVars = LesVars & "&" & LCase(Item) & "=" & server.URLencode(Request.Form(Item))
End If
Next
For each Item In Request.QueryString
If LCase(Item) <> "quelpage" And LCase(Item) <> "taillepage" Then
LesVars = LesVars & "&" & LCase(Item) & "=" & server.URLencode(Request.QueryString(Item))
End If
Next
If (NumPageEnCours mod 10) = 0 Then
CompteurDebut = PageEnCours - 9
Else
CompteurDebut = NumPageEnCours - (NumPageEnCours mod 10) + 1
End If
CompteurFin = CompteurDebut + 9
If CompteurFin > MaxPages Then CompteurFin = MaxPages
If CompteurDebut <> 1 Then
StrHTML = "<a href=""" & PageEnCours
StrHTML = StrHTML & "?quelpage=" & 1
StrHTML = StrHTML & "&taillepage=" & TaillePage
StrHTML = StrHTML & LesVars
StrHTML = StrHTML & """>Première page</a> : "
Response.Write StrHTML
StrHTML = "<a href=""" & PageEnCours
StrHTML = StrHTML & "?quelpage=" & (CompteurDebut - 1)
StrHTML = StrHTML & "&taillepage=" & TaillePage
StrHTML = StrHTML & LesVars
StrHTML = StrHTML & """>10 pages Précédente</a> <br>"
Response.Write StrHTML
End If
Response.Write "["
For i = CompteurDebut To CompteurFin
If cstr(i) <> Cstr(NumPageEnCours) Then
StrHTML = "<a href=""" & PageEnCours
StrHTML = StrHTML & "?quelpage=" & i
StrHTML = StrHTML & "&taillepage=" & TaillePage
StrHTML = StrHTML & LesVars
StrHTML = StrHTML & """>Page " & i & "</a>"
Else
StrHTML = "<b>Page " & i & "</b>"
End If
Response.Write StrHTML
If i <> CompteurFin Then Response.Write " "
Next
Response.Write "]"
If CompteurFin <> MaxPages Then
StrHTML = "<br><a href=""" & PageEnCours
StrHTML = StrHTML & "?quelpage=" & (CompteurFin + 1)
StrHTML = StrHTML & "&taillepage=" & TaillePage
StrHTML = StrHTML & LesVars
StrHTML = StrHTML & """>10 pages Suivantes</a>"
Response.Write StrHTML
StrHTML = " : <a href=""" & PageEnCours
StrHTML = StrHTML & "?quelpage=" & MaxPages
StrHTML = StrHTML & "&taillepage=" & TaillePage
StrHTML = StrHTML & LesVars
StrHTML = StrHTML & """>Dernière page</a>"
Response.Write StrHTML
End If
Response.Write "<br></font>"
Response.Write "</td>"
Response.Write "</table>"
End If
End Sub
%>
Conclusion :
J'essayerai de rajouter des options genre exportation d'une table en CSV etc...
Ha oui, il vous faut le fichier adovbs.inc inclus dans le ZIP
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.