Conexión

Hola experto... Mira, normalmente se suele declarar en el Load del Formulario los objetos Connection y Recordset para poder trabajar con los datos de la aplicación... Pero me recomendaron utilizar un modulo en el cual declare de forma publica estos objetos, de manera tal que puedan ser usados en cualquier form del programa...¿De qué manera se utiliza esta forma de trabajo?, digo, me gustaría me orientaras un poco, sobre si es conveniente y de que forma se declararía... Gracias

2 Respuestas

Respuesta
1
Lo que yo normalmente hago es:
Creo un modulo vas y pongo
Option explicit
Global conn as connection
Global rs as adodb. Recordset
Luego hago un splash screen donde abro la conexión, y la mantengo abierta mientras dure la aplicación (muchas personas dicen que esto puede dar problemas, pero a mi nunca me fallo nada)
Luego los recordsets los abro y los cierro cuando los tenga que usar
Ventajas:
No tienes que andar declarando y abriendo en cada form la conexión y el recordset, o sea más comodidad
Al tener una sola variable, tienes un solo puntero a memoria, o sea ahorras ram
Te ahorras el tiempo que tarda en abrirse la conexión
En fin, es mucho más cómodo
Respuesta
1
A ver son procedimientos públicos
Por ejemplo
public bd as database
set bd opendatabase (mibase.mdb)
Listo si tienes esto en el modulo de inicio
Desde cualquier formulario
Puedes hacer
dim rs as recordset
set rs openrecordset(bd,"tabla")
o que se yo
También podes hacer una función
Ahora no la tengo a mano...
Pero yo había hecho una función en la que yo le asignaba la consulta y me devolvía un adodb. Recorset conectado a esa base
dim ado as adodc.recordset
set ado = crearADO("select * FROM tabla)
Era algo así... el procedimiento crear ado... solamente con la consulta me devolvía todo el recordset armado...
Acá encontré todo el ejemplo hay cosas que no son de esto que me pedís... pero otras que si
Public BDPath As String
Public BD As Database
Public rsBD As Recordset
Public BDado As New ADODB.Connection
Public rsADO As New ADODB.Recordset
Sub Main()
BDPath = App.Path & "\Access\FichasPacientes.mdb"
frmPrincipal.Show
'MsgBox App.Path & "\Access\FichasPacientes.mdb"
End Sub
Public Sub AbrirBD()
Set BD = OpenDatabase(App.Path & "\Access\FichasPacientes.mdb")
End Sub
Public Sub CerrarBD()
BD.Close
End Sub
Public Sub ConectarBD(source As String, tipo As CursorTypeEnum)
'source especifica el origen de los registros para el nuevo
'objeto. El valor del origen es el valor del objeto DAO.
'Cuando se crea un nuevo objeto desde un objeto Database el
'argumento source es un TableDef o QueryDef en la base de datos
'o un retorno válido de una consulta SQL o sentencia. Cuando
'se crea un objeto de este tipo el mismo provee el origen de
'datos para el nuevo objeto.
Set rsBD = BD.OpenRecordset(source, tipo)
End Sub
Public Sub AbrirAdo()
If BDado.State = adStateclose Then
With BDado
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Access\FichasPacientes.mdb"
.CursorLocation = adUseClient
End With
Else
MsgBox "ya esta abierto"
End If
End Sub
Public Sub CerrarAdo()
BDado.Close
End Sub
Public Sub ConectarAdo(mSQL As String, adoType As CursorTypeEnum)
MsgBox "rsADO.State = adStateClosed - " & adStateClosed
rsADO.CursorLocation = adUseClient
rsADO.Open mSQL, BDado, adoType, adLockOptimistic
'para ver los adotype reescribe la coma adelante del adotype en la sentencia open
End Sub
Public Sub DesconectarAdo()
rsADO.Close
End Sub
ESTA DE ABAJO SI ES
Function crearRsado(mSQL As String, adoType As CursorTypeEnum) As ADODB.Recordset
Dim temp As New ADODB.Recordset
AbrirAdo
temp.CursorLocation = adUseClient
temp.Open mSQL, BDado, adoType, adLockOptimistic
Set crearRsado = temp
End Function

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas