Antes de utilizar este código, hay que crear la base de datos en SQL Server.
Para este ejemplo, la tabla se llama 'Encuesta', la cual dispone de 3 campos:
1.- e_si - INT
2.- e_no - INT
3.- IP - NVARCHAR(15)
La imagen denominada barra.gif, es esta:
<table border=1 CELLSPACING=0 CELLPADDING=5 WIDTH=200 bordercolor="#3a6ea5">
<tr>
<td>
<table border=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%>
<tr>
<td><font face="Arial" size=2>
Crees que el programa Napster está incurriendo en alguna ley contra el mercado discográfico?
<%
'Abrimos la base de datos
set objBase=server.CreateObject("ADODB.Connection")
set objTabla=server.CreateObject("ADODB.RecordSet")
'Servidor=Dirección de nuestro servidor
'BaseDatos=Nombre de nuestra base de datos
objbase.Open "PROVIDER=SQLOLEDB;DATA SOURCE=Servidor;UID=Usuario;PWD=Password;DATABASE=BaseDatos"
'Consulta SQL Sobre la tabla Encuesta, la cual nos devuelve el primer y unico registro.
set objtabla=objbase.Execute("select * from Encuesta")
varsi=clng(objtabla.Fields("e_si"))
varno=clng(objtabla.Fields("e_no"))
'Comprobamos que la IP del usuario sea distinta de la que hay en al base de datos
ipUser=cstr(Request.ServerVariables("REMOTE_ADDR"))
cor=False
if ipuser=objtabla.Fields("ip") then Cor=true
if Request.QueryString("Encuesta")="true" and cor=false then
if Request.QueryString("Valor")="Si" then
'Aumentamos en uno el valor de si, y guardamos la IP en la Tabla
varsi=varsi+1
set objtabla=objbase.Execute("UPDATE Encuesta SET e_si=" & varsi & ",ip='" & ipuser & "'")
end if
if Request.QueryString("Valor")="No" then
'Aumentamos en uno el valor de no, y guardamos la IP en la Tabla
varno=varno+1
set objtabla=objbase.Execute("UPDATE Encuesta SET e_no=" & varno & ",ip='" & ipuser & "'")
end if
end if
objbase.close%>
<center>
<%if Request.QueryString("Valor")="" and cor=false then%>
<!--Muestra el formulario para realizar la votación-->
<form method=GET action="inicio.asp" id=form1 name=form1>
<input type="hidden" name="Encuesta" value="true">
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr>
<td align=center><font face="Arial" size=2>
<input type="radio" name="Valor" Value="Si">Si
<BR><input type="radio" name="Valor" Value="No">No
</td>
<td align=center><font face="Arial" size=2>
<input type="submit" value="Enviar" id=submit1 name=submit1>
</td>
</tr>
</table>
</form>
<%else%>
<font face="Arial" size=2 color="#ff0000"><P><B>GRACIAS por colaborar</B><P></font>
<%end if%>
</center>
<%
'Mostramos el gráfico si ya han participado en la encuesta
if varsi<>0 or varno<>0 then
total=varsi+varno
pos_si=(varsi*100)/total
pos_no=(varno*100)/total
%>
<table border=0 width=100% cellpadding=0 cellspacing=1>
<tr>
<td align=center colspan=3>
<!--Mostramos el total de usuarios que han participado en la encuesta en formato español-->
<font face="Arial" size=2>Resultado de <%=replace(formatnumber(total,0),",",".")%> usuarios.
</td>
</tr>
<tr>
<!--Mostramos la gráfica-->
<td>
<font face="Arial" size=2>SI
</td>
<td>
<%if pos_si>0 then%>
<img src="barra.gif" height=15 width=<%=cint(pos_si)%>>
<%end if%>
</td>
<td align=right>
<font face="Arial" size=2><%=formatnumber(pos_si,2)%>%
</td>
</tr>
<tr>
<td>
<font face="Arial" size=2>NO
</td>
<td>
<%if pos_no>0 then%>
<img src="barra.gif" height=15 width=<%=cint(pos_no)%>>
<%end if%>
</td>
<td align=right>
<font face="Arial" size=2><%=formatnumber(pos_no,2)%>%
</td>
</tr>
</table>
<%end if%>
</td>
</tr>
</table>
</td>
</tr>
</table>