<object style="height: 390px; width: 640px"><param name="movie" value="http://www.youtube.com/v/2QCHCbYbNmY?version=3&feature=player_detailpage"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/2QCHCbYbNmY?version=3&feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></object>
- SGBD
- Visual Basic 6.0
- Conalep Michoacan![if> ![endif]>
- Mas BLogger![if> ![endif]>
- Internet![if>
- Youtube![if> ![endif]>
- Televisa ![if> ![endif]>
jueves, 15 de diciembre de 2011
OBJETO ADO
OBJETO ADO
(Microsoft ActiveX Data Objects - ADO). Conjunto de objetos COM para el acceso a recursos de datos. Prevé una capa entre los lenguajes de programación y las bases de datos OLE, lo que permite a los programadores escribir programas que accedan a datos, sin saber cómo está implementada la base de datos (sólo se debe tener cuidado en la conexión a la misma). Tampoco es necesario conocer sobre SQL cuando se usa ADO, aunque también pueden utilizarse comandos SQL, pero esto crearía en el programa una dependencia del tipo de base de datos usado.
En otras palabras, ADO es un mecanismo que utilizan los programas para comunicarse con las bases de datos. Forma parte de lenguajes como Visual Basic, Delphi, ASP, etc. La versión ADO.NET forma parte de la plataforma de programación .NET de Microsoft.
ADO fue introducido por Microsoft en 1996, y sustituyó tanto a DAO (Data Access Object), como a RDO (Remote Data Object), ambos sistemas se utilizaban antes para acceder a las bases de datos locales y remotas respectivamente
En otras palabras, ADO es un mecanismo que utilizan los programas para comunicarse con las bases de datos. Forma parte de lenguajes como Visual Basic, Delphi, ASP, etc. La versión ADO.NET forma parte de la plataforma de programación .NET de Microsoft.
ADO fue introducido por Microsoft en 1996, y sustituyó tanto a DAO (Data Access Object), como a RDO (Remote Data Object), ambos sistemas se utilizaban antes para acceder a las bases de datos locales y remotas respectivamente
INTRODUCCIONEn este ejemplo se accede a una base de datos de Access usando ADO.Lo único que tenemos que hacer es:
|
En el zip con el ejemplo, incluyo una pequeña base de datos que es la usada en el formulario Web.
Por tanto, si lo descomprimes, procura que la base de datos se quede dentro del directorio "datos".
De forma predeterminada se creará ese directorio.
¿Dónde descomprimir el fichero?
Dentro del directorio "localhost", por defecto es: C:\Inetpub\wwwroot
Para acceder a la página de prueba, tendrás que usar http://localhost/ejemploAccessADO.aspx
Por supuesto esto sólo será posible si tienes el Windows 2000/XP Profesional o un Windows Server que tenga instalado el IIS.
En este ejemplo sólo muestro el código de Visual Basic, ya que al fin y al cabo es BScript.
Ejemplo
<%
' Variables usadas para crear los objetos, etc.
Dim Rst, Cnn
Dim sConn, sTip
Dim sTitulo, sLink, sApartado, sDescripcion
Dim s, i
' Crear los objetos
Cnn = Server.CreateObject("ADODB.Connection")
' Crear la conexión a la base de datos
sConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Server.MapPath("datos\elguille.mdb") & ";"
Cnn.Open(sConn)
' Crear la cadena SQL
s = "SELECT * FROM Titulos ORDER BY Apartado ASC"
Rst = Cnn.Execute(s)
On Error Resume Next
Err.Clear
' Buscar desde el principio
Rst.MoveFirst
i = 0
Do While Not (Rst.BOF Or Rst.EOF)
i = i + 1
With Rst
' Asignar a las variables el contenido del registro
sTitulo = .Fields("Titulo").Value & ""
sLink = .Fields("Link").Value & ""
sApartado = .Fields("Apartado").Value & ""
sDescripcion = .Fields("Descripcion").Value & ""
' Mostrar los datos hallados
Response.Write(i & "- <a href='" & sLink & "'>" & _
sTitulo & "</a> <b>(" & _
sApartado & ")</b><br>" & sDescripcion & "<br>")
End With
'
' Mostrar el siguiente registro
Rst.MoveNext
Loop
Response.Write("<br>")
Err.Clear
If i = 0 Then
Response.Write("<br><b>No se ha encontrado ningún registro que contenga")
Response.Write(" lo que has especificado.</b><br>")
Response.Write("Pulsa en este link para <b>")
Response.Write("<a href='mostrarDatosTodo.aspx'>"
Response.Write("Mostrar todos los registros</a></b>.<br>")
End If
'
Rst.Close
Cnn.Close
Rst = Nothing
Cnn = Nothing
'
%>MODELO DAO
MODELO DAO
(Objetos de Acceso a Datos) viene definido como sigue:
Podemos utilizar el modelo de Objetos de Acceso a Datos para manipular bases de datos bien en el modelo nativo del motor de acceso JET (.MDB) o bien en cualquier otro formato ISAM (Fox, dBASE, Excel, Btrieve, Paradox, y Text).
El modelo de datos DAO (DbEngine, WorkSpace, Database y Recordset)
DAO incorpora en sus librerías, todos los objetos necesarios para la creación, eliminación y modificación de una estructura de datos, incorporando además herramientas para la utilización de los datos almacenados.
EJEMPLO
El objeto principal, de esta estructura jerarquizada de objetos, es DBEngine. Éste objeto, no puede ser elemento de ninguna colección, por lo que no pueden crearse objetos DBEngine adicionales.
Con los métodos .OpenDatabase y .CreateWorkSpace, del objeto DbEngine, podemos crear llamadas a una base de datos; directamente para almacenar en el espacio de trabajo predefinido, o para añadir espacios de trabajos adicionales a la coleccion de objetos WorkSpace, donde abrir posteriormente la base de datos.
Los valores devueltos por esos dos métodos son:
.CreateWorkSpace:
Añade un nuevo objeto de area de trabajo, a la coleccion de objetos WorsSpace, en el Objeto DbEngine.
.OpenDatabase:
Devuelve un objeto Database, que referencia una base de datos, en el área de trabajo predeterminada.
Dim Db As Database
Set Db = DbEngine.WorkSpace(0).OpenDatabase("Ruta del fichero de datos")
Set Db = DbEngine.WorkSpace(0).OpenDatabase("Ruta del fichero de datos")
O bien, de la siguiente manera para el área de trabajo predeterminada.
Dim Db As Database
Set Db = DbEngine.OpenDatabase("Ruta del fichero de datos")
Set Db = DbEngine.OpenDatabase("Ruta del fichero de datos")
El objeto Database devuelto por el método .OpenDatabase, posee a su véz otras colecciones de objetos, pero siguiendo el ejemplo, de abrir una base de datos y mostrar registros, vamos a tratar solamente sobre el objeto Recordset (conjunto de registros).
El método que vamos a usar para rellenar el objeto Recorset, con los registros es: .OpenRecordset, y es aquí donde vamos ejecutar una instrucción SQL para definir los registros que vamos a mostrar.
Dim Rst As Recordset
Set Rst = Db.OpenRecordset("SELECT * FROM Personas")
Set Rst = Db.OpenRecordset("SELECT * FROM Personas")
Para realizar el ejemplo hay que crear una base de datos llamada MisDatos.mdb, que contenga una tabla denominada Personas, y guardarla en la misma carpeta donde vayamos a guardar el proyecto. Crear un proyecto nuevo. Añadir en Referencias una llamada a la libreria: Microsoft DAO 3.51 Object Library. En el formulario poner un control Data y un DbGrid, enlazado al Data. Añadir este código. Guardar el proyecto y ejecutar (F5).
Se comienza con la declaración de los objetos que vamos a utilizar, uno para la base de datos y otro para el conjunto de registros a usar.
Option Explicit
Dim Db As Database
Dim Rst As Recordset
Dim Db As Database
Dim Rst As Recordset
A continuación ejecutamos las instrucciones necesarias para cargar la base de datos y rellenar el recorset, asignándolo luego al control Data1.
Private Sub Form_Load()
Set Db = DbEngine.OpenDatabase(App.Path & "\MisDatos.mdb")
Set Rst = Db.OpenRecordset("SELECT * FROM Personas")
Data1.DatabaseName = App.Path & "\MisDatos.mdb"
Set Data1.Recordset = Rst
End Sub
Set Db = DbEngine.OpenDatabase(App.Path & "\MisDatos.mdb")
Set Rst = Db.OpenRecordset("SELECT * FROM Personas")
Data1.DatabaseName = App.Path & "\MisDatos.mdb"
Set Data1.Recordset = Rst
End Sub
Con ésto tendremos los datos mostrados en la rejilla de datos.
Otra forma de mostrar los registros obtenidos, sería registro a registro, en controles TextBox, éstos pueden estar enlazados al igual que el DbGrid a un control Data o mostrar los registro directamente desde el objeto Rst, mediante el siguiente código:
Supongamos una matriz con controles TextBox, uno por cada campo que exista en la Tabla.
Dim i As Long For i = 0 to Rst.Fields.Count - 1
Text1(i).Text = Rst(i)
Next i
Suscribirse a:
Entradas (Atom)