Même code que l'autre sauf qu'il n'y a plus la balises HTML dans la visu sur VBFrance, donc enfin lisible!! ;-)
prochaine évolutions : modification des tables
Source / Exemple :
<%
'***********************************************************
' Cette page permet de visualiser le contenu d'une table
' sans en connaitre les champs.
' Seule obligation : indiquer les informations de connexion
' et la requete SQL
'***********************************************************
' auteur : Renaud COLAS - r.colas@bigfoot.com
' date : 23/08/2000
' inputs : ceux du FORM
' output : tableau HTML du recordset de la requete
'***********************************************************
option explicit
Response.buffer = true
' Constantes de Bases de Données
Const adLockReadOnly = 1
Const adLockOptimistic = 3
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adOpenKeyset = 1
' Constante de formattage
const font = "face=""arial"" color=""#000000"" size=""2"""
' définition des variables et récupération des paramètres du FORM
dim conn, rs, connstring, i, errMsg
dim SQL, BASE, USER, PWD, SVR_CHEM, CONN_TYPE, ACTION, CHEM_RELATIF
SQL = Ucase(trim(request("SQL")))
BASE = Ucase(trim(request("BASE")))
USER = trim(request("USER"))
PWD = trim(request("PWD"))
SVR_CHEM = Ucase(trim(request("SVR_CHEM")))
CONN_TYPE = Ucase(trim(request("CONN_TYPE")))
ACTION = Ucase(trim(request("ACTION")))
CHEM_RELATIF = Ucase(trim(request("CHEM_RELATIF")))
errMsg = ""
' Vérification qu'un chemin absolu n'est pas passé comme chemin relatif
if CHEM_RELATIF="OUI" and inStr(SVR_CHEM,":")>0 then
errMsg = "<font color=red><b>ERREUR :</b></font> Un chemin relatif n'indique pas de lettre de lecteur ! (exemple : /rep_bases/base.mdb)<br>Vous avez entré :<b>" & SVR_CHEM & "</b>"
end if
if (inStr(SVR_CHEM,":")>0 OR inStr(SVR_CHEM,"/")>0) and CONN_TYPE<>"ACCESS" then
errMsg = "<font color=red><b>ERREUR :</b></font> Votre nom de serveur parait être un chemin...<br>SQL a besoin d'un nom de serveur (exemple : MONSERVEURWEB)<br>Vous avez entré :<b>" & SVR_CHEM & "</b>"
end if
' Création de la chaine de connexion
if ACTION="ENVOYER" AND errMsg="" then
select case CONN_TYPE
case "SQL"
'connexion ADO vers SQL -------------------
Set conn = server.CreateObject("ADODB.Connection")
connstring = "driver={SQL Server};" _
& "server=" & SVR_CHEM & ";" _
& "uid=" & USER & ";" _
& "pwd=" & PWD & ";" _
& "database=" & BASE & ""
conn.open connstring
'FIN ADO vers SQL -------------------
case "ACCESS"
'connexion ADO vers Access ----------------
Set conn = Server.CreateObject("ADODB.Connection")
connstring="DRIVER={Microsoft Access Driver (*.mdb)};UserCommitSync=Yes;Threads=3;SafeTransactions=0;ReadOnly=0;PageTimeout=1;MaxScanRows=8;MaxBufferSize=2048;FIL=MS Access;DriverId=281;"
if CHEM_RELATIF="OUI" then
connstring = connstring & "DBQ=" & server.mappath(SVR_CHEM)
else
connstring = connstring & "DBQ=" & SVR_CHEM
end if
conn.Open connstring,USER,PWD
'FIN ADO vers Access ----------------
case "ORACLE"
'connexion ADO vers Oracle ----------------
Set conn = Server.CreateObject("ADODB.Connection")
connstring = "driver={Microsoft ODBC for Oracle};" _
& "server=" & SVR_CHEM & ";" _
& "uid=" & USER & ";" _
& "pwd=" & PWD & ";" _
& "database=" & BASE & ""
conn.open connstring
'FIN ADO vers Oracle ----------------
case else
SQL = ""
ACTION = ""
errMsg = "Désolé, type de connexion non géré pour l'instant..."
end SELECT
end if
' fonction qui affiche le contenu de la table
function affTable()
set rs = server.createObject("ADODB.Recordset")
rs.open SQL, conn,adLockOptimistic, adOpenDynamic
' affichage du nombre d'enregistrements
response.write "<b>" & rs.recordCount & " enregistrements</b>"
response.write "<table border=1 bordercolor=#AAAAC9 cellpadding=2 cellspacing=0 style=""font-size:10pt""><tr>"
' affichage des nom de champs
for i=0 to rs.Fields.count-1
response.write "<th>" & rs.fields(i).name &"</th>"
next
response.write "</tr>"
' affichage des valeurs
do while not rs.eof
response.write "<tr>"
for i=0 to rs.Fields.count-1
response.write "<td>" & rs.fields(i).value & "</td>"
next
rs.movenext
response.write "</tr>"
loop
response.write "</TABLE>"
rs.close
set rs = nothing
conn.close
set conn = nothing
end function
%>
<html>
<head>
<title>Visualisation automatiques de tables</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<STYLE>
TD {font-family: arial; font-size: 10pt}
</STYLE>
</head>
<body bgcolor="#FFFFFF" topmargin="10" leftmargin="10" marginheight="10" marginwidth="10" link="#0000A0" vlink="#0000A0" alink="#FF0000" text="#000000" >
<font <%=font%>>
<!-- Formulaire de paramètrage de la connexion // -->
<form method=POST action="">
<TABLE WIDTH=350 BORDER=1 CELLPADDING=2 CELLSPACING=0 BGCOLOR="#D0D0D0" BORDERCOLOR="#808080">
<TR nowrap>
<TH colspan=3><b>PARAMETRES DE CONNEXION</b></tH>
<tr>
<td nowrap>Serveur ou chemin vers la base (Access) :</td>
<td><INPUT TYPE="text" value="<%=SVR_CHEM%>" NAME="SVR_CHEM" SIZE=20 ></td>
<!-- colonne 3 // -->
<td rowspan=8 valign=top><b>Chaine de Connexion :</b><PRE><%=replace(connstring,";",";<br>")%></td>
<!-- fin colonne 3 // -->
</TR>
<tr>
<td nowrap>Dans le cas d'une bases Access :</td>
<td>
<INPUT TYPE="radio" NAME="CHEM_RELATIF" VALUE="OUI"<%if CHEM_RELATIF="OUI" then%>checked<%end if%>> Chemin Relatif ("/rep_bases/base.mdb")
<br>
<INPUT TYPE="radio" NAME="CHEM_RELATIF" VALUE="NON"<%if CHEM_RELATIF="NON" then%>checked<%end if%>> Chemin absolu ("c:webasesase.mdb")
</td>
</TR>
<tr>
<td nowrap>Base :</td>
<td><INPUT TYPE="text" value="<%=BASE%>" NAME="BASE" SIZE=20 ></td>
</TR>
<tr>
<td nowrap>Utilisateur :</td>
<td><INPUT TYPE="text" value="<%=USER%>" NAME="USER" SIZE=10 ></td>
</TR>
<tr>
<td nowrap>PassWord :</td>
<td><INPUT TYPE="text" value="<%=PWD%>" NAME="PWD" SIZE=10 ></td>
</TR>
<tr>
<td nowrap>Requete :</td>
<td><input type="text" value="<%=SQL%>" name="SQL"SIZE=40 ></td>
</TR>
<tr>
<td nowrap>Type de connexion :</td>
<td>
<SELECT NAME="CONN_TYPE">
<OPTION VALUE="SQL" <%if CONN_TYPE="SQL" then%>selected<%end if%>> SQL
<OPTION VALUE="ACCESS" <%if CONN_TYPE="ACCESS" then%>selected<%end if%>> ACCESS
<OPTION VALUE="ORACLE" <%if CONN_TYPE="ORACLE" then%>selected<%end if%>> ORACLE
</SELECT>
</td>
</TR>
<TR>
<TD colspan=2 align=center><input type="submit" name="ACTION" value="ENVOYER"></TD>
</TR>
</TABLE>
</form>
<!-- FIN Formulaire de paramètrage de la connexion // -->
<%
' si l'utilisateur a cliqué sur ENVOYER
if ACTION="ENVOYER" then
' si SQL n'est pas vide et qu'il n'y a pas eu d'erreur
if SQL<>"" and errMsg="" then
call affTable
end if
end if
%>
<%=errMsg%>
<br><br>
<center>
<HR SIZE=1 NOSHADE COLOR="#000000">
<font color="#909090">
<small>©<%=Year(Date)%> - Renaud COLAS - Tous droits réservés - <a href="mailto:r.colas@2si-systemes.fr">Contact</a>
</small>
</font>
<!-- *************************** FIN CONTENU ******************************* // -->
</body>
</html>
Conclusion :
ce code vous plait? des suggestions? n'hésitez pas à me le dire! ;-)
r.colas@2si-systemes.fr
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.