SQL Server: Error en Cadena de Conexión en JavaScript

ab mptc
09 de Febrero del 2011
Hola,

Tengo un problemon, hemos migrado de SQL Server 2000 a SQL Server 2005, y va todo bien menos una cosa (el famoso problemon). Al hacer consultas a base de datos desde un Script de cliente, utilizando JavaScript, por ejemplo:




Me da el siguiente error:




Sin embargo si hago lo siguiente desde VbScript:




Funciona perfectamente.

He estado mirando por Internet, he jugado con la cadena de conexión, pero no he conseguido nada. Tengo un montón de funciones en JavaScript, y espero no tener que pasarlas a VbScript.
Al usar alguna de las funciones de JavaScript que llaman a base de datos, no sale el error directamente, se queda la página bloqueada unos 15 segundos y después sale el error. Por lo que he leído, al no salir instantáneamente el error no es un problema de usuario o contraseña, sino de que intenta localizar el servidor de base de datos y no lo localiza. Sin embargo desde VbScript lo encuentra sin ningún problema.

¿Se os ocurre alguna idea?

Muchas gracias de antemano y un saludo.

ab mptc
09 de Febrero del 2011
Hola,

Tengo un problemon, hemos migrado de SQL Server 2000 a SQL Server 2005, y va todo bien menos una cosa (el famoso problemon). Al hacer consultas a base de datos desde un Script de cliente, utilizando JavaScript, por ejemplo:

var Cn=new ActiveXObject("ADODB.Connection");
var Rs=new ActiveXObject("ADODB.Recordset");
Cn.Open("Provider=SQLOLEDB.1;password=xxx;Persist Security Info=True;User ID=xxx;Initial Catalog=xxxx; Data Source=C33000ASQLEXPRESS");

strSQL = "SELECT * from TABLA"
Rs.open(strSQL,Cn);

Me da el siguiente error:

[DBNETLIB][ConnectionOpen (Connect()).] No existe el servidor SQL Server o se ha denegado el acceso al mismo.

Sin embargo si hago lo siguiente desde VbScript:

Set Cn = CreateObject("ADODB.Connection")
Set Rs = CreateObject("ADODB.Recordset")
Cn.Open "Provider=SQLOLEDB.1;Password=xxx;Persist Security Info=True;User ID=xxx;Initial Catalog=xxx; Data Source=C33000ASQLEXPRESS";

Rs.Open "Select * from TABLA" , Cn

Funciona perfectamente.

He estado mirando por Internet, he jugado con la cadena de conexión, pero no he conseguido nada. Tengo un montón de funciones en JavaScript, y espero no tener que pasarlas a VbScript.
Al usar alguna de las funciones de JavaScript que llaman a base de datos, no sale el error directamente, se queda la página bloqueada unos 15 segundos y después sale el error. Por lo que he leído, al no salir instantáneamente el error no es un problema de usuario o contraseña, sino de que intenta localizar el servidor de base de datos y no lo localiza. Sin embargo desde VbScript lo encuentra sin ningún problema.

¿Se os ocurre alguna idea?

Muchas gracias de antemano y un saludo.

ab mptc
11 de Febrero del 2011
Por fin, lo hemos solucionado

Hemos reinstalado el SQL Server 2005, y en vez de dejarle que ponga el nombre de instancia por defecto: C33000ASQLEXPRESS , le hemos puesto como nombre de instancia: C33000A

Y por fin funcionó.

Y además creo que ya tengo la explicación de la causa del error: el backslash. JavaScript consideraba que le estaba indicando un carácter especial, y por eso no funcionaba.

Saludos.