| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | |  | | |
 | 
26-11-2007, 20:46:16
| | Buena Participación en el Foro | | Registrado: sep 2007 Posts: 88
| | Mejor forma de gestionar una base de datos ¿? Muy buenas, en esta ocasión la duda que me corrompe después de algún tiempo haciendo diferentes pruebas es la siguiente: ¿Cual es la mejor forma, la más completa y la más potente de gestionar mediante código una base de datos Access 2003 desde VB6?
Está claro que no tengo unos conocimientos muy extensos, pero lo que yo pretendo es poder (aparte de acceder a cada tabla, registro para leer, escribir, etc.) ver las tablas y campos de una base de datos, crear un campo o tabla en cualquier momento, poder conectar a esta de cualquier forma (preferiblemente mediante ODBC), en fin... poder tener todo bajo control por código.
Usando DAO por ejemplo sí que se crear tablas, campos y verlo todo, pero no conectar mediante ODBC. Sin embargo mediante ADO se conectar con ODBC pero no crear tablas y campos, ni a partir de la base de datos ver que tablas y campos tiene.
Espero puedan orientarme. Saludos y gracias de antemano. | 
26-11-2007, 21:36:31
| | Gran Participación en el Foro | | Registrado: oct 2004 Posts: 177
| | Hola
Bueno no se si yo debiera ser quien responda por que a mi los objetos de datos predefinidos no me gustan (ADO,DAO, etc..)
Pero recuerdo bien que estos objetos contienen en si las colecciones a todos los objetos que conforman tu base de datos
El objeto Ado contiene los objetos recordsets de tu base y el objeto recordsets contiene los campos (Fields) y el objeto Field contine el contenido de las celdas (Value) , ahora, el objeto ado tiene metodos (como cualquier Instancia..... o casi )
como el metodo Execute que sencillamente ejecuta las instrucciones SQL que se te ocurran con su infinidad de combinaciones (SELECT, SELECT INTO, CREATE TABLE, UPDATE , WHERE , LIKE , ORDER BY ") y cualquiera que sea capaz de ejecutar el mismo Acsses , si a final de cuentas tienes entre ADO o DAO para elegir , en sentido practico da casi igual
Saludos
__________________
voy aprendiendo , siempre
| 
26-11-2007, 22:28:07
| | Buena Participación en el Foro | | Registrado: sep 2007 Posts: 88
| | Muchas gracias por tu respuesta dagoba77, "la cosa" es que como bien has dicho, el objeto ADO contiene los objetos recordsets que a su vez contiene los campos, etc., pero para eso hay que abrir una tabla previamente. Vamos, que en el caso de ADO, ¿como puedo averiguar las tablas contenidas en la BD?
Saludos. | 
26-11-2007, 22:41:38
| | Gran Participación en el Foro | | Registrado: oct 2004 Posts: 177
| | Código: dim Tabla
for each tabla in ado.recordset
msgbox tabla.name
next
Saludos
__________________
voy aprendiendo , siempre
| 
26-11-2007, 22:58:05
| | Buena Participación en el Foro | | Registrado: sep 2007 Posts: 88
| | Mmmm, tengo asi definida la conexion: Código: Dim Con As ADODB.Connection
Dim Tabl As ADODB.Recordset ¿Que se supone que es el objeto ado al que haces referencia? En mi caso... ¿Con? porque me da error ya que no existe la propiedad recordset para ese objeto :smt017
No entiendo tu codigo. Saludos y gracias. | 
27-11-2007, 00:49:07
| | Gran Participación en el Foro | | Registrado: oct 2004 Posts: 177
| | Perdon por la tardanza efectivamente estube probando con las instancias y no puedo encontrar la coleccion referida , en dao es facil Código: dim MiBase as database
Dim MIrecord as recordset
dim t
for each t in Mibase.Recordsets
msgbox t.name
next Ha eso me referia con el codigo de antes , sin embargo es curioso que el control Adodc1 si tenga una coleccion de recordsets si lo agregas a algun proyecto, lo que seguramente significa que ADo efectivamente contiene la susodicha coleccion, lamentablemente desconosco como referirme a ella, pero seguramente alguien por aqui nos sacara de la duda pronto , aun asi prometo estudiar un poco mas para tratar de enmendar mi error lo antes posible
Saludos
P.S. Por eso no uso dao
editado : perdon pere deje el codigo incompletisimo Código: dim MiBase as database
Dim MIrecord as recordset
set Mibase = opendatabase(<"Aqui la direccion de tu base>")
dim t
for each t in Mibase.Recordsets
msgbox t.name
next Ahora si debe funcionar
Saludos
__________________
voy aprendiendo , siempre
| 
27-11-2007, 02:47:25
| | Buena Participación en el Foro | | Registrado: sep 2007 Posts: 88
| | Correcto, en DAO es asi de facil, pero el tema seria, o encontrar como conectar a la base de datos en DAO mediante ODBC a traves del nombre del DNS o poder encontrar la coleccion de tablas o una manera de gestionar "al completo" la base de datos (como puedo hacer en DAO) con ADO.
Saludos y muchas gracias por tu tiempo y preocupacion sobre el tema. | 
27-11-2007, 05:50:18
| | Gran Participación en el Foro | | Registrado: oct 2004 Posts: 177
| | Bueno ahora si que deveras "de nada" por que no creo haber sido de gran ayuda, sin embargo espero que alguna mente maestra, de esas que abundan por aqui, pronto nos de alguna pista, por que francamente yo mismo ya me encuentro intrigado
Saludos y hasta pronto
__________________
voy aprendiendo , siempre
| 
30-11-2007, 19:27:31
| | Buena Participación en el Foro | | Registrado: sep 2007 Posts: 88
| | Bueno, suponiendo que no hay coleccion de tablas en ADO y no se puede conectar mediante ODBC al DNS de una BD con DAO, ¿que forma es mejor para acceder a una BD?
Por lo menos para sacar algo en claro de este post... jeje.
Saludos. | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 19:03:27.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |