Yo lo hago ligeramente distinto, espero te sirva:
function conectSQL() as Boolean local lo_Error as exception
try this.Conexion =
newobject('ADODB.Connection') if this.ReadXML()
with this.Conexion
.Provider = this._Provider
.Properties("Data Source").value = this._Database
.Properties("Initial Catalog").value = this._InitialCatalog
.Properties("User ID").value = this._User
.Properties("Password").value = this._Password
.open endwith
endif this.pb_Ok = .t. catch to lo_Error
this.pb_Ok = .f. endtry return
this.pb_Ok endfunc
los datos de conexión están en un XML pero harcodea los tuyos y fijate que el
objeto Conexion les seteo las propiedades, no las cargo desde un string
conection... adaptalo a tu plataforma y probalo en forma aislada... no se si
hay diferencia con lo otro
Date: Thu, 3 Jan 2013 13:11:15 -0300
Subject: [puntonet] Conneccion a SQL desde DLL
From: [email protected]
To: [email protected]
mira cuando hago las pruebas de mi equipo no hay problemas me conecto sin
problemas a la BD, pero cuando llevo la dll a QA, que es la misma maquina donde
esta el SQL server no me logro conectar.
El 3 de enero de 2013 13:08, Adrian Cura <[email protected]> escribió:
te sugiero pruebes el string de coneccion con un archivo udl, para constatar
que no provenga de ahí el error.¿El servidor sql esta remoto o en la pc local?
saludos
Adrián.
2013/1/3 Andres Guzman <[email protected]>
Hola gracias por la ayuda mira estos son los métodos con los que estoy
probando...
public string GetConnectionString()
{
string conString = @"Data Source=xxx;Initial Catalog=bdTEst;User
Id=user;Password=xxx";
SqlConnectionStringBuilder conn = new
SqlConnectionStringBuilder(conString);
conn.PersistSecurityInfo = true;
return conn.ConnectionString;
}
public string PruebaBD()
{
DataTable dt = new DataTable();
try
{
using (SqlConnection sqlConn = new
SqlConnection(GetConnectionString()))
{
sqlConn.Open();
SqlCommand com = new
SqlCommand("sp_s_Euro_CargaMasivaSinContinuidad", sqlConn);
com.CommandType = System.Data.CommandType.StoredProcedure;
com.Parameters.Add("PngId", System.Data.SqlDbType.Int);
com.Parameters["PngId"].Value = 1;
com.Parameters.Add("idcMas", System.Data.SqlDbType.VarChar,
30);
com.Parameters["idcMas"].Value = "2013010214400056520";
using (IDataReader dr = com.ExecuteReader())
{
dt.Load(dr);
}
sqlConn.Close();
}
return "SIN ERRORES";
}
catch (Exception ex) { return ex.ToString(); }
}
el error que me arroja (resumido):
System.Data.SqlClient.SqlException: No se puede abrir la base de datos
"NOMBREBD" solicitada por el inicio de sesión. Error de inicio de sesión. Error
de inicio de sesión del usuario 'MAQUINA\IUSR_MAQUINA'
System.Data.SqlClient.SqlClientPermission, System.Data
El 3 de enero de 2013 12:51, Héctor Daniel Correa
<[email protected]> escribió:
ASP clásico... y funciona.
--
Saluda ATTE.
Andrés Guzmán Oyaneder.
09-9319111
[email protected]
--
Adrián Jorge Cura
ApareSer Consultora Informática
Te: 15 6181 7298
[email protected]
www.apareser.com.ar
--
Saluda ATTE.
Andrés Guzmán Oyaneder.
09-9319111
[email protected]