• Viernes 3 de Mayo de 2024, 09:20

Autor Tema:  Acceso A Db Desde Vb  (Leído 8940 veces)

patitofeo

  • Miembro MUY activo
  • ***
  • Mensajes: 145
    • Ver Perfil
Acceso A Db Desde Vb
« en: Viernes 13 de Enero de 2006, 18:01 »
0
No tengo mucha esperiencia en esto:

      Para las Bases de Datos,
                            ¿Data environment, ADO o DAO?

Gracias         :angry::kicking::angry:

hdr

  • Miembro MUY activo
  • ***
  • Mensajes: 128
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #1 en: Viernes 13 de Enero de 2006, 18:52 »
0
hola
el dataenvironment utiliza ado para la conexion a la base de datos.
con ado te puede conectar a cualquier base de datos desde que tengas instalado un provedor oledeb.
con dao solo puedes conectarte a bases de datos jet (access).

patitofeo

  • Miembro MUY activo
  • ***
  • Mensajes: 145
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #2 en: Viernes 13 de Enero de 2006, 19:24 »
0
Gracias

Esa información ya la tenia mas o menos. He estado leyendo algun manual por ahi. Este post era algo más a nivel personal. Buscaba alguna recomendación.

Para el proyecto que pretendo me vale cualquiera de ellos pero ninguno me convence. era a ver con cual estabais vosotros mas comodos.

Yo personalmente siempre he preferido aquello que me de la posibilidad de trabajar más libremente. Que puedas tu hacer siempre lo que tienes en cabeza aunque cueste un poco mas de trabajo. Ya se q alguno dira que entonces me equivoque de lenguaje pero ...

Hasta ahora (y ya digo que no domino ninguno de ellos) yo prefiero moverme con ADO o simplemente Data Control.

¿Ustedes?

Saludos :hola:

Widark

  • Miembro MUY activo
  • ***
  • Mensajes: 246
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #3 en: Viernes 13 de Enero de 2006, 23:52 »
0
Que tal patitofeo!!!

Personalmente trabajo con ADO (pero en codigo, no con el control), para el manejo de las Db's, y ADOX para saber cuantas tablas hay en la base de datos y esas vainas. Yo te recomendaria ADO, por cantidad de ventajas frente a DAO.

Si tienes mas dudas, ya sabes que estamos presto para ayudarte.

Saludos
[:], Yo si se lo que es trabajar duro, por que lo he visto.
http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
NoSolocodigo --> Blog de Articulos

jc_moty

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #4 en: Sábado 14 de Enero de 2006, 02:55 »
0
Bueno, segun he leido por ahi DAO ya esta super defasado (y fue lo que me enseñearon en la Universidad hace 3 años ;) )
Personalmente uso ADO pero a nivel de Codigo (Sin el Datacontrol), se me hace mas practico que estar pegando un ADODC en cada form, simplemente uso una conexion global (se que esta mal crear objetos o variable de tipo Global :D) a la que accederan todos los Recordsets de la aplicacion.

Saludos :suerte:
[size=109]Compartir el conocimiento es una acción de seres inteligentes, que han comprobado que el conocimiento es un bien que crece a medida que se lo comparte.

Firma la petición para que Microsoft mantenga activo VB6(mas información]aquí[/url])[/size]

patitofeo

  • Miembro MUY activo
  • ***
  • Mensajes: 145
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #5 en: Lunes 16 de Enero de 2006, 11:10 »
0
Vale.

 :comp: Entonces al lio. Como ya dije yo también veia más claro lo de usar ADO.

Solo una pequeñita cosa más:

¿No sabreis de algún manual o algo un poco más completo y claro sobre ADO que no sea lo que aparece en el MSDN del visual 6.0 o los tipicos tutoriales que aparecen rastreando Google?

bueno. Yo voy poco a poco con ello. pero hay cosas que aun me cuestan bastante trabajo y no encuentro ninguna ayuda clara donde apoyarme. En el MSDN, el tema de ADO es muy descriptivo. Hay un tema desarrollado sobre DAO, pero sobre ADO...

y en google, encuentro muchos tutoriales pero para hacer conexiones basicas y trabajando con el horribe control visual. ejemplos demasiado obvios.

Me costo muchisimo poder cambiar el contenido de un data report para que se llenara con otra tabla de al base de datos.

Bueno, no me enrollo más. Era solo eso ¿sabeis de alguna cosilla por ahi?

Muchas gracias

 :alien:    (Seguir opinando sobre cual metodo de acceso usais. me gustaría que alguien se pusiera a favor de DAO o que algun otro diese una alternativa. Ojala yo pudiese aportar mas  :blink: )

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Acceso A Db Desde Vb
« Respuesta #6 en: Lunes 16 de Enero de 2006, 23:05 »
0
Aún uso el DAO y me sirve bien. Se puede usar con Control Data o con código para manipular los datos, o una combinación de ambos.

 :comp:

hdr

  • Miembro MUY activo
  • ***
  • Mensajes: 128
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #7 en: Martes 17 de Enero de 2006, 03:19 »
0
dao asi este desfasado me parece buenisimo para manejar bases de datos access, pero si es para otro motor de bd no es lo mejor, dao tiene la ventaja de que con la jerarquia de objetos dao estan reprecentadas la tablas, las consultas, etc. asi te ahorras algo de trabajo, dao tiene la desbentaja de que si cambias de dbms tendrias que reescribir bastante codigo, mientras que con ado solo seria la connectionstring

jc_moty

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #8 en: Martes 17 de Enero de 2006, 04:07 »
0
Cita de: "patitofeo"
¿No sabreis de algún manual o algo un poco más completo y claro sobre ADO que no sea lo que aparece en el MSDN del visual 6.0 o los tipicos tutoriales que aparecen rastreando Google?
Ya viste estos?:
Acceder a bases de datos con ADO datacontrol
Acceder a bases de datos con ADO sin el data control
Personalmente, estos manuales me ayudaron muchisimo con ADO...

Saludos :hola:
[size=109]Compartir el conocimiento es una acción de seres inteligentes, que han comprobado que el conocimiento es un bien que crece a medida que se lo comparte.

Firma la petición para que Microsoft mantenga activo VB6(mas información]aquí[/url])[/size]

Angel38

  • Miembro MUY activo
  • ***
  • Mensajes: 370
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #9 en: Martes 17 de Enero de 2006, 18:15 »
0
Hola patito feo.

Pues he escuchado que Microsoft desea erradicar por completo a DAO, pues les parece que ya es una herrmanienta obsoleta, no se que tan bien este enterado de esto, a mi parecer ADO no te restringe tanto y minimiza la codificacion.

Estoy terminando de desarrollar una aplicacion que dejo un programador que la estaba trabajando en DAO y me he visto con dificultades ya que si quieres trabajar con ACCESS 2000 no te lo permite el DAO y tienes que convertirlo a access 97.
[size=109]Se me olvidó instalar los Drivers de Cordura en mi Cerebro.

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Acceso A Db Desde Vb
« Respuesta #10 en: Martes 17 de Enero de 2006, 19:20 »
0
Las últimas actualizaciones de VB6 te permiten trabajar DAO con Acesss 2000 sin problema, excepto por el campo de contador automático. Personalmente manejo DAO Access 97 y 2000, los cambios de código entre una y otra versión son mínimos.

 :comp:

Angel38

  • Miembro MUY activo
  • ***
  • Mensajes: 370
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #11 en: Miércoles 18 de Enero de 2006, 18:33 »
0
:smartass:
Ok. siempre se aprende algo nuevo.
Gracias

Pero me quedo con ADO
[size=109]Se me olvidó instalar los Drivers de Cordura en mi Cerebro.

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #12 en: Miércoles 18 de Enero de 2006, 18:59 »
0
hola

Si es verdad, DAO ya es algo del pasado, aunque cuando se ve que al parecer la BD seria una de Access, no esta nada mal usar DAO ya que es más amigable para Access como dijeron por ahi, es para motor jet.  Si tu BD sera de Access puedes usar DAO porque es más rapido, ya que ADO utiliza un intermediario como ODBC u OLE BD para llegar al motor jet de Access lo cual lo hace lago tardio para conectarse, en lo que se refiere a operaciones de registros, pero esto se nota mas cuando la BD es muy grande, pero DAO accede directamente al motor jet y ADO por intermediarios al menos esto con Access, pero claro esta que por ejemplo el control Data de DAO solo entiende hasta el motor jet 3.5 o 3.6 ya para Access 2000 en adelante es jet 4.0 y el control no entiende el formato por lo que nunca podras conectar un control Data de DAO a una BD Access 2000 hay que convertirla desde Access a version 97 como ya han indicado por ahi, o hacerla en el VisData del propio VB version 7, la cual es Access 97.  Pero para cualquier otra BD sea SQL Server, Oracle, etc.. definitivamente ADO  ;)


Citar
jc_moty:

Personalmente uso ADO pero a nivel de Codigo (Sin el Datacontrol), se me hace mas practico que estar pegando un ADODC en cada form, simplemente uso una conexion global (se que esta mal crear objetos o variable de tipo Global biggrin.gif) a la que accederan todos los Recordsets de la aplicacion.

¿Cómo asi de que es malo la declaracion de variables Globales para los objetos de conexión?  ¿si es malo? y eso porque? :blink:

saludos pues.
Si esto es Leído por accidente, induzca al vomito

hdr

  • Miembro MUY activo
  • ***
  • Mensajes: 128
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #13 en: Miércoles 18 de Enero de 2006, 19:29 »
0
el control data si se puede conectar a access 2000 solo debes instalar el sp5 para el visual basic y el actualiza el data con la opcion de access 2000.
si por alguna razon no lo pueden conseguir yo se los paso.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #14 en: Miércoles 18 de Enero de 2006, 20:08 »
0
ahhhhhh broma si cierto, si los sp, llevo mucho tiempo que no uso controls Data, puro por codigo más fluido, los controles data son algo muy encapsulado, a bueno ya algo bueno para DAO que haga que aun se pueda seguir usando para BD Access más actuales, cool  ;)

PD: yo creo que si tengo el sp5 o el sp6 por una vez que lo tuve que bajar para mostrar Reportes del DateReport en hoja Horizontal y no vertial ya que no cabian los datos en la hoja normal y el sp traia una funcion o dlls para eso, pero ya uso Crystal Report.

mil perdones por la desactualizacion de los contorles Data y saludos developer  :hola:
Si esto es Leído por accidente, induzca al vomito

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #15 en: Miércoles 18 de Enero de 2006, 22:49 »
0
Hola Genios:

He leido con con el SP 6 de VB se puede enlazar un control Data a una BD de access.  Muy interesante, pero cómo hago para hacer esto, pues ya he instalado el SP6 de VB y no he podido lograr conectar el Data a la BD.

Gracias por cualquier aporte??

Saludos.
Saludos...

Mellileo!!

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Acceso A Db Desde Vb
« Respuesta #16 en: Jueves 19 de Enero de 2006, 00:05 »
0
En el menú 'Proyecto' busca 'Referencias' y selecciona "Microsoft DAO 3.6 Object Library"
En la propiedad 'Connect' del control Data selecciona "Access 2000;"

 :comp:

jc_moty

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #17 en: Jueves 19 de Enero de 2006, 04:02 »
0
Cita de: "UserCode"
¿Cómo asi de que es malo la declaracion de variables Globales para los objetos de conexión? ¿si es malo? y eso porque?
Creo que use la palabra incorrecta :P  no es que sea malo declarar variables Globales, sino que a nosotros como programadores nos mal acostumbra ¿Porqué? por que cuando estemos aprendiendo otro lenguaje quiza necesitemos crear este tipo de variables y en algunos no se podra.
En mi experiencia, lenguajes como PHP, C++, Java, VB .NET no admiten variables Globales.
Y no solo es el hecho de las variables globales lo que nos mal acostumbra, hay muchas cosas de VB que mal acostumbran al programador: Variables sin declarar, Variables de tipo indefinido (Variant), Código repetido, Uso de goto y etiquetas, etc.
El punto es: no acostumbrarnos a este tipo de cosas, para que cuando queramos o necesitemos aprender otro lenguaje no nos cueste tanto la transicion.

Saludos :comp:
[size=109]Compartir el conocimiento es una acción de seres inteligentes, que han comprobado que el conocimiento es un bien que crece a medida que se lo comparte.

Firma la petición para que Microsoft mantenga activo VB6(mas información]aquí[/url])[/size]

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #18 en: Jueves 19 de Enero de 2006, 15:20 »
0
Hola cpmario:

He cargado la referencia a "Microsoft DAO 3.6 Library " como me lo has sugerido, pero en la propiedad "connect " del control, no aparece la opción Access 2000.

Qué puede estar pasando?  acaso el SP6 que tengo no funciona? necesito otro SP?

Cualquier ayuda será muy agradecida!!!

Saludos,
Saludos...

Mellileo!!

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Acceso A Db Desde Vb
« Respuesta #19 en: Jueves 19 de Enero de 2006, 16:34 »
0
Debiera aparecer con el SP6, que es lo que yo tengo. Ignoro cual pueda ser el problema.
Te adjunto 2 pequeños proyectos de una base de datos DAO, el único cambio que tienen es la referencia para Access 97="Microsoft DAO 3.51 Library", y para Access 2000= "Microsoft DAO 3.6 Library", además la propiedad Connect del control Data en Access 97= "Access" y en para Access 2000= "Access 2000;"

 :comp:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

patitofeo

  • Miembro MUY activo
  • ***
  • Mensajes: 145
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #20 en: Viernes 20 de Enero de 2006, 14:09 »
0
Gracias por los manuales jc_moty

Ya conocia esa pagina y me parece muy buena. La recomiendo a todo el mundo.

Ya voy abriendome camino con ADO.

Por cierto, otra dudilla. ¿Como puedo cambiar la contraseña para un usuario de mi BD Access desde mi aplicacion de VB? ¿Se puede?

Saludos :hola:

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #21 en: Viernes 20 de Enero de 2006, 17:17 »
0
Hola cpmario

He logrado por fin conectar la bd de access 2000 con DAO, lo que pasaba es que el SP6 que tenía estaba incompleto.... mal descargado. Lo he bajado de nuevo y se ha instalado completo, corrigiendo el error de la propiedad connect  del control data.

Gracias por tu oportuna ayuda!!!
Saludos...

Mellileo!!

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Acceso A Db Desde Vb
« Respuesta #22 en: Viernes 20 de Enero de 2006, 17:31 »
0
Para cambiar la contraseña a la base de datos encontré 2 enlaces en PSC para DAO y ADO respectivamente:

http://www.planetsourcecode.com/vb/scripts...=35220&lngWId=1

http://www.planetsourcecode.com/vb/scripts...=35222&lngWId=1

 :comp:

patitofeo

  • Miembro MUY activo
  • ***
  • Mensajes: 145
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #23 en: Viernes 20 de Enero de 2006, 18:12 »
0
Gracias pcmario

Pero antes tengo un problema mayor. Y es que mi aplicacion se conecta a una base de datos que en teoria esta protegida por password sin necesidad de especificar ni usuario ni password.

Me explico y quiza puedan decirme donde me equivoco.

Trabajo con Access 2000 y en la base de datos cree dos usuarios. "Administrador" y "consulta". Al administrador le dejo como estaba (es el usuario por defecto) solo que le di un password. A "consulta" le quite todos los permisos sobre las tablas excepto los de lectura y no le di password.

ahora cada vez que trato de abrir la base de datos (clicko directamente sobre el fichero) me pide usuario y password. Bien!!

Solo que si me conecto desde codigo

Código: Text
  1.  
  2. BaseDeDatos.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" _
  3.     & App.Path & "/Data/MenocaDB.mdb;"
  4. BaseDeDatos.Open                'BaseDeDatos.ConnectionString, "administrador", "*"
  5.  
  6.  

entonces no tengo que pasarle el pass ni nada y el se conecta perfectamente. ¿por qué?

Valla una seguridad ¿Que hago mal?

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Acceso A Db Desde Vb
« Respuesta #24 en: Sábado 21 de Enero de 2006, 21:02 »
0
Citar
QUOTE (UserCode)
¿Cómo asi de que es malo la declaracion de variables Globales para los objetos de conexión? ¿si es malo? y eso porque?

Creo que use la palabra incorrecta tongue.gif no es que sea malo declarar variables Globales, sino que a nosotros como programadores nos mal acostumbra ¿Porqué? por que cuando estemos aprendiendo otro lenguaje quiza necesitemos crear este tipo de variables y en algunos no se podra.
En mi experiencia, lenguajes como PHP, C++, Java, VB .NET no admiten variables Globales.
Y no solo es el hecho de las variables globales lo que nos mal acostumbra, hay muchas cosas de VB que mal acostumbran al programador: Variables sin declarar, Variables de tipo indefinido (Variant), Código repetido, Uso de goto y etiquetas, etc.
El punto es: no acostumbrarnos a este tipo de cosas, para que cuando queramos o necesitemos aprender otro lenguaje no nos cueste tanto la transicion.

Saludos comp.gif

ahh ok gracias jc_moty, viendolo por ese lado si es cierto.

Amigo patitofeo no sé si entiendo bien el problema, es una Bd protegida, como cuando la abres desde Access y te pide clave para poder abrirla, y quieres que el usuario pueda cambiar esa clave y que no este esa clave escrita directamente dentro del codigo de conexion del programa? es eso? porque no creo que sea clave de como cuando tu creas una tabla "Clave" o "Acceso" con campos de Login y Psswd, eso es acceso para el sistema, asi que lo tuyo debe ser claramente acceso a la BD, (lo reconfirmo por si acaso).

Si quieres que el propio usuario cambie la clave de ser necesario, tal vez si tengas que hacer una tabla en la BD para eso y que el campo clave del string de conexion a la BD sea una variable que recoga el campo de esa tabla, bueno en teoria.  :unsure:
Si esto es Leído por accidente, induzca al vomito