Así que no sé mucho acerca de SQL o VBScript, y mucho menos poner a los dos juntos.

Que estoy tratando de conectar a un Servidor SQL server que se ejecuta SQL 2008. Todo lo que quiero hacer es conectar y me parece que no puede hacerlo. Sigo recibiendo varios errores, incluyendo:

  • «Nombre de origen de datos no se encontró ningún controlador predeterminado especificado»
  • «Error de inicio de sesión del usuario ‘usuario'»
  • De carácter no válido»»

Ya sé acerca de http://www.connectionstrings.com pero no sé lo que es un número de cosas que decir. ¿Qué es una Fuente de Datos? ¿Qué es un Catálogo Inicial?

Aquí es lo que tengo hasta ahora.

Dim result
Set cn = CreateObject("ADODB.Connection")
cn.ConnectionString = "Provider=SQLOLEDB.1;Server=MyIP;Database=SQLDatabase;User ID=user;Password=pass"
cn.Open
strQry = "select * from Users"
set result = cn.execute(strQry)

Alguien me puede ayudar a hacer las cabezas y las colas de esto?

Edit 1: Esto es lo que estoy viendo en el Administrador de Configuración del Servidor;

VBScript y SQL Server 2008 Preguntas

Edit 2: me disculpo por no poner esto en claro. Yo no soy de conexión a la máquina local. Me estoy conectando a un equipo en mi red.

1 Comentario

  1. 3

    Origen de datos = la instancia del motor de base de datos que se va a conectar, ya sea un nombre de host o nombre de host combinado con una instancia con nombre. A menudo esto es localhost o localhost\SQLEXPRESS pero también puede ser una dirección IP o nombre de dominio totalmente cualificado (ya sea dentro o fuera de su red).

    Initial Catalog = la base de datos a la que conectarse. El inicio de sesión asociado con el nombre de usuario/contraseña que se utiliza en la cadena de conexión debe estar en funciones específicas de servidor o estar asociada con un usuario en la base de datos que, al menos, pertenece a la función pública.

    Si has instalado SQL Server Express Edition, la cadena de conexión debe ser:

    cn.ConnectionString = "Provider=SQLNCLI10;" & _
      "Data Source=myIP\SQLExpress;" & _
      "Initial Catalog=SQLDatabase;" & _
      "User ID=user;Password=pass"

    Que no podemos saber si es la correcta cadena de conexión – si has instalado una instancia predeterminada o el nombre de la instancia de algo más, por ejemplo. Otras variaciones puede probar (ya que usted dijo que usted no instalar Express), en caso de que haya algún problema con myIP:

    "Data Source=localhost;" & _

    O

    "Data Source=(local);" & _

    O

    "Data Source=.;" & _

    O

    "Data Source=127.0.0.1;" & _

    Para ver lo que tiene instalado, usted puede ir a Inicio > Todos los Programas > SQL Server 2008 > Herramientas de Configuración > Configuración de SQL Server, el Administrador y haga clic en Servicios de SQL Server. En el panel derecho, usted debe ver algo como esto:

    VBScript y SQL Server 2008 Preguntas

    A pesar de sus nombres de instancia puede que no coincidan con los míos. Si usted ve SQL Server (MSSQLSERVER), esta es una instancia predeterminada, y el origen de datos en la cadena de conexión sería . o (local) o (localhost). Si usted ve SQL Server (something other than MSSQLSERVER) entonces sería .\something other than MSSQLSERVER etc. También puede ver si se está ejecutando la instancia, lo que podría ser otro problema. Si la instancia que desea conectarse está detenido, usted no será capaz de conectar con él hasta que usted haga clic derecho y seleccione Iniciar. También puede ser que desee haga clic en la instancia y seleccione Propiedades, de modo que usted puede configurar el servicio para que se inicie automáticamente, así que usted no tiene que repetir este proceso la próxima vez que reinicie. Si desea que el servicio se ejecuta todo el tiempo.

    Si usted nos muestran lo que se ve en el administrador de configuración podemos ayudar con la posición exacta de la cadena de conexión que necesita.

    EDITAR

    Ahora que veo la actualización del mensaje de error, el cual contiene:

    [DBNETLIB][ConnectionOpen (Connect()).]

    Usted puede tratar de un par de opciones:

    (1) asegúrese de que TCP/IP está activado. En el administrador de configuración de SQL Server Configuración de Red > los Protocolos de MSSQLSERVER, haga clic en TCP/IP, y elija Activar. Usted necesitará reiniciar SQL Server. (Mientras que usted debería ser capaz de utilizar la memoria compartida, esta es la forma en que he usado para configurar siempre ASP clásico.)

    (2) agregar lo siguiente a tu cadena de conexión:

    cn.ConnectionString = "Provider=SQLNCLI10;" & _
      "Data Source=localhost;" & _
      "Initial Catalog=SQLDatabase;" & _
      "User ID=user;Password=pass;" & _
      "Network=DBMSSOCN;"
    • Yo no estoy usando SQL Express, estoy usando SQL Server 2008 R2.
    • no es relevante. Lo que es relevante es si ha instalado SQL Server como una instancia predeterminada o una instancia con nombre, y si no se está ejecutando el servicio. Sólo lo mencioné Express, ya que es muy común y que es el valor predeterminado de la instancia con nombre (y la mayoría de la gente no espere a ser llamado).
    • He añadido una captura de pantalla. Ahora estoy usando Data Source=localhost;
    • Y aún así no funciona? ¿Cuál es la exacto mensaje de error que estás recibiendo ahora mismo (no solo parte de ella, y no el mensaje de error sopa vemos en la pregunta)?
    • Me estoy poniendo un «Proveedor Microsoft OLE DB para SQL Server: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server no existe o error de acceso denegado.
    • Es posible que el nombre de usuario y la contraseña que utiliza no son válidos? Tal vez la contraseña es incorrecta? Tal vez el inicio de sesión no tiene acceso a la base de datos que haya especificado? Se puede conectar a SQL Server como su cuenta de Windows con Management Studio?
    • Se conecta a la MS SQL Server Management Studio con las mismas credenciales.
    • permítanos seguir esta discusión en el chat
    • Y usa «localhost» como el nombre del servidor en el Management Studio?
    • Muchas gracias por toda su ayuda.

Dejar respuesta

Please enter your comment!
Please enter your name here