Visual Basic - Accesar a Tablas desde VB

Life is soft - evento anual de software empresarial
 
Vista:

Accesar a Tablas desde VB

Publicado por Katty (16 intervenciones) el 04/01/2001 00:00:00
Hola:

Quisiera saber cual es la combinación correcta de "Parámetros o propiedades del Recordset de ADO" para accesar a las tablas de SQL 7.0 desde VB 6.0 para una aplicación multiusuario.
Puesto que esto me esta generando problemas tales como:

-------------------------------------------------
Error 3001

La aplicación está usando argumentos incorrectos, o están fuera del intervalo permitido o entran en conflicto con otros.
-------------------------------------------------
Error 3709

La aplicación solicito una operación en un objeto con una referencia a un objeto Connection cerrado o no valido
-------------------------------------------------

Para leer utilizo:
tabla.open "select * from tabla", adOpenStatic, adLockReadOnly

Para modificar utilizo:
tabla.open "select * from tabla",adOpenDynamic, adLockOptimistic

Por la atención prestada. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Accesar a Tablas desde VB

Publicado por Ariopolis (159 intervenciones) el 05/01/2001 00:00:00
Para abrir un recordset necesitas tener una conexión abierta y asignársela al recordset:

Declaración:
Public cnConexion as ADODB.Connection

Instanciación:
Set cnConexion = New ADODB.Connection

Apertura:
cnConexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=c:\pepe.mdb"

Y luego se la asignas al Recordset:
Leer:
tabla.Open "select * from tabla", cnConexion, adOpenStatic, adLockReadOnly

Modificar:
tabla.Open "select * from tabla", cnConexion, adOpenDynamic, adLockOptimistic
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RESPONDAN LA PREGUNTA

Publicado por Katty (1 intervención) el 08/01/2001 00:00:00
Gracias, efectivamente, faltaba agregar la conexión, pero ahora la pregunta es: como se cuando utilizar adOpenStatic, adOpendynamic o adOpenkeyset.
Al igual que adlockreadonly, adlockOptimist, etc. Tengo una idea de como utilizar las combinaciones respectivas, pero realmente no estoy segura del ¿por qué?
Por favor diganme una respuesta entendible porque la ayuda sobre este tema que se encuentra en VB no es muy explicativa.

Gracias Mil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RESPONDAN LA PREGUNTA

Publicado por Ariopolis (159 intervenciones) el 09/01/2001 00:00:00
La propiedad CursorType vale para establecer el modo de apertura del Recordset:

adOpenForwardOnly (por defecto) -> vale para abrir el recordset de modo que solo avanza hacia delante por lo que es más rápido que ninguno de los anteriores, pero tiene las limitaciones de no poderte mover hacia atrás. Vale para recorrerlo.

adOpenStatic -> vale para traerte los registros a tu equipo (suponiendo una BD en red) y trabajar con ellos en local (no ves las actualizaciones de otros usuarios).

adOpenDynamic -> en este caso sí ves los cambios en la BD pero es más lento que el anterior.

adOpenKeySet -> abre el recorset como "conjunto de claves" de la tabla o tablas afectadas, de este modo es más rápido que el dynamic y no accedes a los registros eliminados y además ves los cambios pero no ves las inserciones de otros.

La propiedad LockType se refiere al modo de bloqueo del recordset que abres:

adLockReadOnly -> abres el recordset en modo de sólo lectura (no puedes modificar ni insertar ni eliminar).

adLockPessimistic -> bloqueo pesimista. Cuando vas a modificar un registro o varios, el motor de la BD los bloquea para que ningún otro usuario haga cambios sobre estos registros.

adLockOptimistic -> solo bloquea en la actualización, el resto de operaciones no las bloquea.

adLockBatchOptimistic -> bloqueo optimista para actualización por lotes o transacciones.

Espero que te ayude. Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar