Acceder a SQL en un número de puerto diferente (cadena de conexión ASP clásica)
-
06-07-2019 - |
Pregunta
Tengo un antiguo sitio ASP clásico que se conecta a una instancia local de SQL Server 2000. Estamos moviendo el db a una nueva caja, y el puerto no es estándar para sql (fuera de mi control). Las cadenas de conexión .NET manejan bien el número de puerto agregándolo con 1999 después del nombre del servidor / IP. La clásica cadena de conexión ASP no funciona con la misma sintaxis. Revisé connectionstrings.com y no pude encontrar uno que funcionara.
Cadena de conexión actual (establecida en una variable de aplicación en Global.asa):
Driver={SQL Server};Server=xxx.xxx.xxx.xxx;Database=dbname;Uid=dbuser;Pwd=dbpassword
He instalado el SQL Native Client y tampoco pude hacerlo funcionar (todavía estoy trabajando en esto)
¿Alguna idea?
Solución
La solución fue instalar el controlador nativo SQL desde MS y luego actualizar la cadena de conexión a lo siguiente:
Driver={SQL Native Client};Server=xxx.xxx.xxx.xxx,port;Database=dbname;Uid=dbuser;Pwd=dbpassword
Originalmente no pude hacerlo funcionar con SQL Native Client debido a un problema de firewall que luego se resolvió.
Otros consejos
Creo que necesitamos más información. ¿Qué estás usando para conectarte a la base de datos? ODBC? OLE DB? ¿Estás conectando a través de ODBC DSN? ¿Está la cadena de conexión en su código ASP, o es su acceso a datos a través de un VB o DLL COM?
cst = "Provider=SQLOLEDB;" & _
"Data Source=<x.x.x.x>,<port number>;" & _
"Initial Catalog=<dbname>;" & _
"Network=DBMSSOCN;" & _
"User Id=<uid>;" & _
"Password=<pwd>"
set conn = CreateObject("ADODB.Connection")
conn.open cst