0/5 (8 avis)
Vue 18 724 fois - Téléchargée 702 fois
<% 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 %>
21 juil. 2006 à 15:45
18 nov. 2004 à 11:17
18 nov. 2004 à 09:59
Vérifies la validité de ta chaine de connexion MonDsn.
Est ce que tu as le problème pour toutes les tables de cette base de données ?
La table qui fonctionne est elle dans la même base de données ?
17 nov. 2004 à 09:24
Type d'erreur :
Microsoft Cursor Engine (0x80004005)
Un état E_FAIL a été renvoyé par le fournisseur de données ou par un autre service.
/test/aspetmysql/basenav.asp, line 128
la ligne en question :
MaxPages = CInt(MonObjRS.pagecount)
pour info la table a 244 records et 34 champs
bdd MySQL
Le scrip sur une autre table fonctionne parfaitement
Si vous pouviez m'aider, je ne suis pas un utilisateur ASP... et compte donc sur vous.
Merci
28 mai 2004 à 13:13
Juste pour dire que je l'ai fait fonctionner avec SQL Server...
Si ca interresse quelqu'un :)
@+
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.