Estoy desarrollando un site web. Utilizo DLL y una base de datos SQL con Adobe .

EXP: mira desarrollé una dll donde conecto una base de datos SQL con ADODB (esto es solo para ocultar la conexión).
Ahora debo llamar esta dll con ASP y lo estoy haciendo de la siguiente. Forma:
dim obj
Set obj = Server.CreateObject("coneccion.conecta")
Ahora quiero saber como realizar la consultas como siempre:
sql = "SELECT * FROM Noticias ORDER BY id DESC"
Set rst = cnn.Execute(sql)
Respuesta
1
Con la dll encapsulas el la parte de crear la conexión. Pero no sé como lo has implementado.
Supongo que tendrás un método que crea un objeto conexión, por lo que tendrás que cambiar la línea que tenias antes para crear la conexión, por la llamada al método que te la crea. Ej:
' sustituyes esta parte
'dim cnn
'set cnn = Server.CreateObject("adodb.connection")
'cnn.Open(....)
' por esta
dim obj
Set obj = Server.CreateObject("coneccion.conecta")
set cnn = obj.CreaConexion()
sql = "SELECT * FROM Noticias ORDER BY id DESC"
Set rst = cnn.Execute(sql)
Dim cn As ADODB.Connection
Sub Abrir()
Set cn = New ADODB.Connection
' abrir la base usando las credenciales de Windows
cn.Provider = "SQLOLEDB"
cn.Properties("Data Source").Value = "xxx.xxx.xxx.xxx "
cn.Properties("Initial Catalog").Value = "sueldos"
cn.Properties("User id").Value = "Administrador"
cn.Properties("Password").Value = "1234"
Con.Open
' Cerrar el recordset y la conexión
End Sub
¿Está bien implementada esta DLL o tu sabes otra forma?
Está casi bien, el error que tienes es declararlo como método, en vez de como función. Y además, una vez creada la conexión, debes retornarla para poder utilizarla en ASP.
Ej:
Public Function Abrir() AS ADODB.Connection
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
' abrir la base usando las credenciales de Windows
cn.Provider = "SQLOLEDB"
cn.Properties("Data Source").Value = "xxx.xxx.xxx.xxx "
cn.Properties("Initial Catalog").Value = "sueldos"
cn.Properties("User id").Value = "Administrador"
cn.Properties("Password").Value = "1234"
cn.Open
Set Abrir = cn
End Function
Otra posibilidad tal y como lo tienes creado sería, declarar la conexión en la dll como pública, para así poder utilizarla en tu códgio asp. Ej:
Public cn As ADODB.Connection
Public Sub Abrir()
Set cn = New ADODB.Connection
' abrir la base usando las credenciales de Windows
cn.Provider = "SQLOLEDB"
cn.Properties("Data Source").Value = "xxx.xxx.xxx.xxx "
cn.Properties("Initial Catalog").Value = "sueldos"
cn.Properties("User id").Value = "Administrador"
cn.Properties("Password").Value = "1234"
cn.Open
End Sub
Ahora en asp harías algo así:
Set obj = Server.createObject("tudll.TuClase")
obj.Abrir
set cnn = obj.cn
sql = "SELECT * FROM Noticias ORDER BY id DESC"
Set rst = cnn.Execute(sql)
Es importante que declares el método y propiedad o la función como publica.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas