Parametrizar conexión BBDD

Hola, tengo un problemilla y a ver si me puedes volver a ayudar :-)
Tengo una aplicación que lee de varias BBDD. No hay problema en esto. Mi duda surge si hay alguna manera de parametrizar la llamada. Es decir, tengo:
Set ad = Server.CreateObject("ADODB.Connection")
Ad.ConnectionString
Ad.Open
Y cuando quiero hacer un recordset:
rs.Open strSQL, ad
Que "ad", sea parametrizable. Es decir, asignarle un valor según un bucle o una condición. Al menos en el recordset. En la creación de las conexiones, no me importa abrir las que sean. Si puede ser, mejor aún.
Gracias de nuevo por tu ayuda y un saludo

1 Respuesta

Respuesta
1
Puedes abrir todas las conexiones que necesites, con tantos objetos Connection como sea necesario. Luego abres los recordsets con las conexiones que te haga falta. Por ejemplo, si abres 4 conexiones llamadas ad1, ad2, ad3 y ad4, puedes abrir un recordset con la conexión ad2 y otro con la ad3, luego cerrar la primera y abrirla de nuevo pero con ad1, etc. Puedes utilizar las combinaciones que quieras.
Nota: Ten en cuenta que mientras tengas una conexión abierta, es posible que estés bloqueando la base de datos, por lo que es conveniente mantenerlas el menor tiempo posible. Vale más a veces abrir y cerrar conexiones que no tener varias abiertas.
Gracias por lo del cierre de conexiones. Lo tendré en cuenta.
Mi pregunta iba encaminada a la parametrización. Es decir, pongamos que tengo una aplicación donde necesito hacer un mismo recordset de varias BBDD. La cuestión es que tengo que poder ir creando BBDD independientes, no tablas. Y ese mismo recordset debe funcionar sin tener que tocar el código ASP.
En vez de hacer:
Set ad = Server.CreateObject("ADODB.Connection")
y
rs.Open strSQL, ad
quiero hacer
Select Case (aplicacion)
case 1: conexionBBDD = "ad1"
case 2: conexionBBDD = "ad2"
end select
Set conexionBBDD = Server.CreateObject("ADODB.Connection")
rs.Open strSQL, conexionBBDD
No se si me explico ...
Gracias por tu interés
Cierto. Estábamos hablando de objetos, no variables. Se me pasó por alto.
Perfecto! muchas gracias ... una vez más
Suponiendo que ad1 y ad2 sean 2 conexiones ya abiertas (método Open), lo correcto sería:
Select Case (aplicacion)
case 1: Set conexionBBDD = ad1
case 2: Set conexionBBDD = ad2
end select
Rs. Open strSQL, conexionBBDD
Ad1 y ad2 no son variables, sino objetos. Para pasar su "valor" a otro objeto, se usa "Set". En este caso, aunque no hayas definido antes conexionBBDD, sólo por asignarle ad1 o ad2 mediante Set, conexionBBDD es ya un objeto Connection.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas