Acceso a una base de datos desde JavaScript, en un Script de cliente

abmptc
12 de Enero del 2010
Hola,

En una página ASP, necesito acceder a una base de datos, pero desde un Script de CLIENTE.

Con Vbscript lo he conseguido que funcione correctamente de esta forma:

<SCRIPT LANGUAGE=Vbscript>
Dim Cn, Rs
set Cn = CreateObject("ADODB.Connection")
Cn.Open "Provider=SQLOLEDB.1;Password=xxx;Persist Security Info=True;User ID=xxx;Initial Catalog=xxx; <%=Application("Maquina")%>"

Set Rs = CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM TABLA " _
& "WHERE TIPO=" & vTipoBien & " " _
& "AND ID_MEDIDA =" & <%=vMedida%>
'msgbox(strSQL)
Rs.Open strSQL, Cn
If Rs.EOF then
...
</SCRIPT>

Pero necesito hacer esto mismo desde un Script de Cliente (runat=client) de JavaScript. He probado con esto:

<SCRIPT LANGUAGE=JAVASCRIPT>
Cn = Server.CreateObject("ADODB.Connection")
Rs = Server.CreateObject("ADODB.RECORDSET")
Cn.Open("Provider=SQLOLEDB.1;Password=xxx;Persist Security Info=True;User ID=xxx;Initial Catalog=xxx; <%=Application("Maquina")%>")
...
</SCRIPT>

pero me da error, me dice que: "Server no esta definido"
Probé con esto:

<SCRIPT LANGUAGE=JAVASCRIPT>
cn = new Connection();
rs = new Recordset();
cn.open("dsn=pubs", "sa", "");
rs = cn.execute("SELECT * FROM authors")
...
</SCRIPT>

pero me da error, me dice que: "Connection no esta definido"

¿Como puedo acceder a la base de datos desde JavaScript, en un Script de cliente?

Saludos.

abmptc
12 de Enero del 2010
La solución es la siguiente:

<script language=javascript>
var Cn=new ActiveXObject("ADODB.Connection");
Cn.Open("Provider=SQLOLEDB.1;Password=xxx;Persist Security Info=True;User ID=xxx;Initial Catalog=xxx; <%=Application("Maquina")%>");
var rs=new ActiveXObject("ADODB.Recordset");
var strSQL="SELECT * FROM TABLA WHERE TIPO=" + vTipoBien + " AND ID_MEDIDA =" + <%=vMedida%>;
rs.open(strSQL,Cn);
if(rs.EOF){ //Condición IF }
</script>

Saludos

Xatcom
12 de Enero del 2010
Yo no haría eso desde el cliente. Puede que necesite software adicional para ejecutar ese tipo de sintaxis. Además no está dentro del estándar Javascript. Un buen programador debe cerciorarse de que todo va a funcionar sin necesidades externas y en cualquier máquina. Usa mejor un lenguaje dinámico de servidor que te muestre el resultado en html, tipo PHP.

Un saludo
----------------------------------------------------------------------
http://www.xatcom.net Diseño web valencia