Antes de partir con este ejemplo les debo comentar que sólo lo deben hacer bajo su responsabilidad y, si y sólo si cuando no exista absolutamente ninguna alternativa para acceder a una base de datos. Les digo esto por que como bien sabrán es bastante fácil acceder a información residente en los script y violarla vulnerarla a gusto del consumidor.
Dicho lo anterior, les cuento que uno de los tantos productos que andan dando vuelta por ésta oficina tiene una WebApp (de ahora en adelante la "WA")para interactuar con el usuario. Esta WA está desarrollada utilizando VS2008 y tiene el 99.9% del código pre-compilado (esto quiere decir que no quieren que se modifique) por lo que las posibilidades quedan acotadas a ese 0.1% donde (y para nuestra buena suerte) podemos incluir código javscript.
En mi caso, se presentó la necesidad de guardar información que el usuario veía en su pantalla (pero que obviamente no se registraba en la base de datos - DAAAAH!) y almacenarla para luego utilizarla dentro de los distintos procesos de negocio.
Bueno, a comenzar se ha dicho!
Lo primer es saber que la conexión a la base de datos (en éste caso MSSQL2005) se realizará a través de un ActiveX (automáticamente estaremos limitados a utilizar IE 7, 8 ó 9 <lo probé en los 3>).
Para mantener cierto nivel de orden vamos a dejar todo lo relacionado al acceso a la base y sus consultas en un script independiente (elPerritoDB.js):
[elPerritoDB.js]
function insertaFecha()
{
var connection = new ActiveXObject("ADODB.Connection");
var connectionstring = "Provider=SQLOLEDB;Server=SuperServer\\SUPERINSTANCIA;Database=LaSuperLindaBase;User ID=sa;Password=laSuperLindaPassWordEncriptadaMD5;Trusted_Connection=False";
connection.Open(connectionstring);
//calendario es un control dentro de la WA
var fechaCalendario = document.getElementById("calendario").value;
var SQL = "INSERT INTO pruebaActiveX (fecha) VALUES ('";
SQL = SQL + fechaCalendario + "'";
SQL = SQL + ")";
connection.Execute(SQL);
connection.close;
}
[elPerritoDB.js]
Y luego ya sea desde otro script o como la acción de alguno de los elementos de la página llamamos a nuestra función.
[elPerroWA.aspx]
...
<div>
<input class="campoInputHabilitado" id="calendario" type="text" style="width:80px;" value="<% =DateTime.Now.ToString("dd/MM/yyyy") %>" />
</div>
<div>
<input type="button" id="Button1" class="botonGenerico" value="GRABAR FECHA" onclick="insertaFecha();" />
</div>
...
[elPerroWA.aspx]
Bueno, lo anterior es sólo a modo de introducción para quien lo quiera utilizar. En la práctica pueden usar todas las funciones que se encuentran disponibles dentro del ActiveX ADODB, ya sean Selects, Updates, exec de Store procedures, etc, etc, etc...
Ojala les guste y nos leemos la próxima!!!
SaludoZ RDUMAND
No hay comentarios:
Publicar un comentario