Foros del Web » Programación para mayores de 30 ;) » .NET »

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

Estas en el tema de SQL Server: Error en Cadena de Conexión en JavaScript en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/02/2011, 06:53
Avatar de abmptc  
Fecha de Ingreso: septiembre-2009
Mensajes: 43
Antigüedad: 14 años, 7 meses
Puntos: 0
SQL Server: Error en Cadena de Conexión en JavaScript

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:

Código:
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=C33000A\SQLEXPRESS");

strSQL = "SELECT * from TABLA"
Rs.open(strSQL,Cn);
Me da el siguiente error:

Código:
[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:

Código:
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=C33000A\SQLEXPRESS";

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.
  #2 (permalink)  
Antiguo 11/02/2011, 04:40
Avatar de abmptc  
Fecha de Ingreso: septiembre-2009
Mensajes: 43
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: SQL Server: Error en Cadena de Conexión en JavaScript

Por fin, lo hemos solucionado

Hemos reinstalado el SQL Server 2005, y en vez de dejarle que ponga el nombre de instancia por defecto: C33000A\SQLEXPRESS , 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.
  #3 (permalink)  
Antiguo 25/11/2011, 07:35
Avatar de abmptc  
Fecha de Ingreso: septiembre-2009
Mensajes: 43
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: SQL Server: Error en Cadena de Conexión en JavaScript

Por si le sirve a alguien voy a contar los problemas que tuvimos posteriormente al pasar de SQL Server 2005 al 2008

En el 2008 en el Data Source a parte de poner la dirección IP del servidor de base de datos, es obligatorio pone \SQLEXPRESS

Nos daba error al conectarnos desde Javascript al nuevo servidor de Base de datos. Después de probar muchas cosas con la cadena de conexión descubrimos el error: La Contra barra en Javascript se usa para indicar que después de ella va un carácter especial, por lo que para poner una contrabarra, hay que poner dos.

Así es como teníamos la cadena de conexión en SQL Server 2005:
Cn.Open("Provider=SQLOLEDB.1;password=microitm;Use r ID=sa;Initial Catalog=psac;Data Source=10.211.64.220");

Así es como tenemos la cadena de conexión en SQL Server 2008:
Cn.Open("Provider=SQLOLEDB.1;Password=microitm;Per sist Security Info=True;User ID=sa;Initial Catalog=psac; 10.211.64.220\\SQLEXPRESS");

Otra cosa que hubo que añadir a la cadena de conexión fue: Persist Security Info=True; ya que sin esto también daba error.

Etiquetas: javascript, server, sql, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:36.