Crear base de datos

11/07/2006 - 15:28 por .:: MaStErDoN ::. | Informe spam
Hola.. estoy trabajando en una aplicacion que maneja varias base de datos
pero todas con la misma estructura..
el tema es que tengo un Dataset ya definido en tiempo de diseño y quisiera
saber si hay alguna maner automaticamente de crear un base de datos de
access en funcion de esa estructura

Gracias
Andres

Preguntas similare

Leer las respuestas

#1 SoftJaén
11/07/2006 - 18:09 | Informe spam
".:: MaStErDoN ::." escribió:

Mostrar la cita
Hola, Andrés:

Que yo sepa, para crear una base de datos Microsoft Access mediante código
fuente, deberás de recurrir a la biblioteca de ADOX usando la
interoperabilidad COM del marco de trabajo de .net. En el siguiente enlace,
te explico cómo puedes crearla:

Cómo crear una nueva base de datos Microsoft Access
http://mvp-access.com/softjaen/base...onet05.htm

Una vez creado el archivo físico, otra cosa distinta es cómo puedes
traspasar los datos del DataSet a una tabla de la base de datos.

Lo más fácil es crear un archivo de texto delimitado que posteriormente
podrás importar a la base de datos de Access mediante el ISAM de Texto. Aquí
encontrarás un ejemplo:

Cómo crear un archivo de texto delimitado con los datos existentes en un
DataSet
http://mvp-access.com/softjaen/base...onet09.htm

Por último, un poco más complicado sería crear un documento XML con los
datos del DataSet, pero necesitarías tener un sitio web, donde se estuvieran
ejecutando los servicios de Microsoft SharePoint para importar el documento
a la base de datos de Access, si para ello utilizas el propio Asistente de
Microsoft Access 2003.

No obstante, si deseas conocer cómo puedes crear el documento XML, échale un
vistazo al siguiente enlace:

Cómo crear un archivo XML con los datos de un objeto DataSet
http://mvp-access.com/softjaen/base...onet11.htm

Una vez creado el documento XML, puedes abrirlo desde Microsoft Excel, y
crear un libro de trabajo que posteriormente podrás importar/exportar a la
base de Access, utilizando el ISAM de Excel que nos proporciona el motor
Microsoft Jet.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
#2 .:: MaStErDoN ::.
11/07/2006 - 20:20 | Informe spam
muchas gracias por tu interes.. lo intentare y cualquier cosa consulto..

gracias de nuevo
Andres

"SoftJaén" escribió en el mensaje
news:
Mostrar la cita
#3 .:: MaStErDoN ::.
11/07/2006 - 20:26 | Informe spam
aguarda!

el tema del "archivo delimitador" no es lol que busco..
mi idea era copiar toda la estructura del dataset.. no los datos..
veo que tendre que recurrir a escribir el codigo para cada tabla.. el
"problema" es que la aplicacion esta en desarrollo y por lo tanto se agregan
tablas.. campos .. relaciones.. y se volveria tedioso modificar tambien la
lineas de la creacion de la base de datos cada vez que haga algun cambio en
el dataset..
no es cuestion de vagancia sino de limpiezo y seguridad.. para disminuir la
probabilidades del error..

GRacias
Andres

"SoftJaén" escribió en el mensaje
news:
Mostrar la cita
#4 SoftJaén
11/07/2006 - 20:52 | Informe spam
".:: MaStErDoN ::." escribió:
Mostrar la cita
Si sólo deseas copiar la estructura, adapta el ejemplo que te he indicado
para que solamente te incluya los nombres de las columnas.

Una vez creado el archivo de texto, lo abres mediante el proveedor de datos
Ole Db .net, y ejecutas una consulta SQL de creación de tabla (SELECT *
INTO), para crear la tabla en la base de datos de Access.

Te dejo un ejemplo que importa a una base de Access un archivo de texto
mediante Visual Basic .net. Si el archivo no tiene datos, la tabla se creará
solamente con el nombre de los campos:

Dim cnn As New OleDbConnection
Dim cmd As New OleDbCommand
Dim sql As String

' Abrimos la conexión con la base de Access
cnn.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos\bd1.mdb;"
cnn.Open()

' Construimos la consulta SQL
sql = "SELECT * INTO [Mi_Tabla] FROM " & _
"[Archivo_Texto#txt] IN ''[TEXT;DATABASE=C:\Mis documentos]"

' Importamos los datos
With cmd
.Connection = cnn
.CommandText = sql
.ExecuteNonQuery()
End With

' Cerramos la conexión
cnn.Close()
cnn = Nothing

Si deseas conocer más sobre el ISAM de texto, consulta el siguiente artículo
técnico:

Trabajar con los datos de un archivo de texto
http://mvp-access.com/softjaen/arti...t_isam.htm

Mostrar la cita
¿El objeto DataSet es dinámico? Quiero decir, ¿si los objetos DataTable no
tienen siempre la misma estructura? Te lo pregunto porque si un objeto
DataTable contiene unas veces cinco columnas, y otras veces veinte columnas,
la verdad es que va a ser un poco complicado llevar a cabo la tarea de crear
la tabla en la base de Access.

He estado haciendo unas pruebas con la beta 2 del nuevo Microsoft Access
2007, y la importación de un documento XML a la base de Access, es una tarea
de «coser y cantar»; es como si importaras los datos de otro archivo de
Access. Te lo comento para que lo tengas presente para un futuro próximo,
que será cuando aparezca la versión definitiva de Microsoft Access 2007. :-)

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
#5 Jesús López
12/07/2006 - 09:36 | Informe spam
Yo, en vez de crear la base de datos por código, crearía una base de datos
Plantilla.mdb usando los diseñadores de Access, y cada vez que necesite una
base de datos nueva, simplemente copiaría el archivo Plantilla.mdb. Creo que
esta solución es mucho más sencilla y no requiere escribir apenas código.


Saludos:

Jesús López


".:: MaStErDoN ::." escribió:

Mostrar la cita
Ads by Google
Search Busqueda sugerida