¿Se puede eso hacer utilizando ADO?

Hola!
Sé que con los objetos DAO se pueden crear tablas, indices, campos...
¿Se puede hacer lo mismo utilizando los objetos ADO o sólo sirven para acceder a una base de datos cuya estructura ye se encuentra definida?
Desde ya muchas gracias!
Respuesta
1
Sí se puede hacer.. te envío un ejemplillo:
Para poder crear una base de datos, desde Visual Basic, usando ADO (ActiveX Data Objects), tenemos que crear en nuestro proyecto una referencia a: Microsoft ADO Ext. 2.6 for DDL and Security (msadox.dll), y crear un objeto del tipo Catalog.
Nota: Esta referencia es para la versión 2.6 de ADO, por tanto puede ser que, si la versión que tienes instalada es otra, en lugar de 2.6 aparezca otra numeración.
ADOX sólo está disponible a partir de la versión 2.1 de ADO.
Crear una tabla con ado...
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
'
Set cat = New ADOX.Catalog
Set tbl = New ADOX.Table
'
' Abrir el catálogo
cat.ActiveConnection = _
"Provider=" & cboProvider.Text & ";" & _
"Data Source=" & txtNombreBase.Text & ";"
'
' Crear la nueva tabla
With tbl
.Name = txtNombreTabla.Text
' Crear los campos y añadirlos a la tabla.
' Esto hay que hacerlo antes de añadir la tabla a la colección de tablas
.Columns.Append "ID", adInteger
' Dependiendo del tipo de proveedor, los datos de cadena serán de un tipo u otro
If cboProvider.Text = "Microsoft.Jet.OLEDB.3.51" Then
' Para Access 97
.Columns.Append "Nombre", adVarChar, 50 ' Una cadena de 50 caracteres
.Columns.Append "email", adVarChar, 100
.Columns.Append "Telefono", adVarChar
.Columns.Append "Observaciones", adLongVarChar ' Una cadena larga, (Memo)
Else
' Para Access 2000
.Columns.Append "Nombre", adVarWChar, 50 ' Una cadena de 50 caracteres
.Columns.Append "email", adVarWChar, 100
.Columns.Append "Telefono", adVarWChar
.Columns.Append "Observaciones", adLongVarWChar ' Una cadena larga, (Memo)
End If
.Columns("Nombre").Attributes = adColNullable ' Permite contener nulos
.Columns("email").Attributes = adColNullable
.Columns("Telefono").Attributes = adColNullable
.Columns("Observaciones").Attributes = adColNullable
End With
'
' Añadir la nueva tabla a la base de datos
cat.Tables.Append tbl
'
Set tbl = Nothing
Set cat = Nothing
En este ejemplo, tenemos que tener asignadas las variables sProvider (el proveedor), sNombreBase (el nombre y path de la base de datos) y sNombreTabla para el nombre de la tabla.
Para una base de datos del tipo Access 97, sProvider = "Microsoft.Jet.OLEDB.3.51"
Para una base de datos del tipo Access 2000, sProvider = "Microsoft.Jet.OLEDB.4.0"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas