Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cursores con ADO

Estas en el tema de Cursores con ADO en el foro de Visual Basic clásico en Foros del Web. Hola, cuando hice mi proyecto de fin de CS, utilicé en casi toda la aplicación controles ADO, execptuando en algunas ocasiones que usaba un módulo ...
  #1 (permalink)  
Antiguo 21/05/2008, 03:44
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Cursores con ADO

Hola, cuando hice mi proyecto de fin de CS, utilicé en casi toda la aplicación controles ADO, execptuando en algunas ocasiones que usaba un módulo en el que tenía definido esto:
Código:
Option Explicit
Public cnConexion As ADODB.Connection
Public rsRegistro As ADODB.Recordset

'Asignamos valores a la conexión.
Public Sub Conexion()
    Set cnConexion = New ADODB.Connection
    cnConexion.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0; data source=jardineria.mdb"
    cnConexion.CursorLocation = adUseClient
    cnConexion.Open
End Sub

'Carga el recordset.
Public Function Cargar(sSource As String)
    Set rsRegistro = New ADODB.Recordset
    rsRegistro.ActiveConnection = cnConexion
    rsRegistro.CursorType = adOpenDynamic
    rsRegistro.LockType = adLockOptimistic
    rsRegistro.Source = sSource
    rsRegistro.Open
End Function
Pero ahora llevo un tiempo en las prácticas en una empresa y utilizan DAO en la mayoría de las aplicaciones.
Pero el método que utilizan es muy cómodo, almenos para mi, ya que tienen definido un workspace a la bd, y luego utilzan continuamente cusores así:
Código:
Dim tbCursor as object
Dim strSQL  as string

strSQL="INSERT INTO......"
dbBaseDeDatos.Execute (strSQL), dbFailOnError
Así, ahora en mis ratos libres me gustaría ir cambiando la aplicación que hice para el proyecto a este sistema, dejandola sin controles ADO en modo diseño.

Pero el problema es que no sé ni como funcionan esos workspaces, ni como se usan, ni nada de nada. Aún pa mas, esos con los que trabajo son DAO y yo quisiera usarlos con ADO(que es más moderno...xD)

Si me podeis ayudar con algún manual o explicandome como se hace esto con ADO pues os lo agradezco de verdad.

Un Saludo y Gracias!
  #2 (permalink)  
Antiguo 21/05/2008, 08:35
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Cursores con ADO

Bueno, como bien dices (y recomienda Microsoft), la tecnología ADO es bastante mas potente que DAO. En algún artículo, ya hace tiempo, leí que MS recomendaba cambiar a ADO, y por supuesto, con la versión de Office 2007 DAO no funciona (MS cuando sacó la version 6 de VB, al mismo tiempo actualizó la librería DAO a la ver. 3.6 para poderlo utilizar con BDs superiores a la ver. 97). En las versiones .Net de vb DAO ya no funciona.

En cuanto a lo de cambiar los controles ADO (imagino que te refieres al control Adodc), no hay ningún problema y la función pública "Conexión" es perfecta si usas una única base de datos, si utilizas más de una puedes copiar el mismo código y llamarla "Conexion2"... evidentemente debe de estar en un módulo .bas.

El WorkSpace en DAO es un área de trabajo que no es necesario utilizar, puedes conectarte directamente a la BD con el método "Opendatabase" de Dao.

Y por lo demás las consultas de actualización (UPDATE), de eliminación (DELETE) y de datos añadidos (INSERT INTO) funcionan exactamente igual en ADO que en DAO.

Espero haberte aclarado algo.

  #3 (permalink)  
Antiguo 21/05/2008, 10:07
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Respuesta: Cursores con ADO

no...xD...no era exactamente lo que preguntaba, eso ya lo sabía más o menos, pero gracias igualmente...jeje.
Posiblemente me haya explicado mal.
Yo lo que quiero es usar en la aplicación varios cursores a la vez, pero no sé como.
Es decir, en esta aplicación tienen:
strSql= "select......"
Set tbCursor = dbBaseDeDatos.OpenRecordset(strSQL)
strSQL="select....."
Set tbCompradores=dbBaseDeDatos.OpenRecordset(strSQL)
Do while not tbCursor.eof
If tbCursor("Cif")=tbCompradores("cif") then....
Loop

Lo que acabo de escribir sé que no tiene mucho sentido pero ha sido así para hacer un ejemplo.
Porque yo en la aplicación tal y como la tengo ahora con controles adodc, estos son "auxiliados" en algunas operaciones que tengo que realizar (bastantes digamos) , por el rsRegistro, el cual cargo con una sentencia SQL.

Eso es lo que necesito, varios cursores con datos para cuando tengo que realizar operaciones conjuntas, que ahora estoy realizando con un control adodc apoyado por el rsRegistro de la función cargar.

Eso es lo que me parece últil de la aplicacion que aquí tienen, y lo cual quería implementar en mi proyecto.

Gracias y un Saldo!
  #4 (permalink)  
Antiguo 23/05/2008, 05:01
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Respuesta: Cursores con ADO

no me puede ayudar nadie?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:52.