Asp - voir tables sur bd access, sql, oracle

Contenu du snippet

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

A voir également

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.