|
ADO vs ADO.NET
En el primer libro de .NET que adquirí, uno de los
capítulos mas importantes y resonantes era el de
ADO.NET.
Lamentablemente en ese libro ya me avisaban sobre
un cambio terrible entre una versión y otra de ADO,
y de alguna manera daba la sensación de que el
cambio seria tan grande que daban ganas de no
continuar por ese camino.
En primer lugar pasaré a mencionarles (para el
asombro de uds.) algunos de los términos que no se
incluyen en ADO.NET.
EOF
RECORDSET
MOVENEXT
MOVEFIRST
MOVELAST
MOVEPREVIOUS
RECORDCOUNT
Y seguramente muchos más que iré descubriendo con
el paso del tiempo.
En ADO la cosa es más o menos así…
Creamos una Conexión a la Base de Datos.
Ejecutamos un comando y llenamos un Objeto RECORDSET con una tabla conformada por el resultado
simple o compuesto por varias tablas mediante una
sentencia SQL.
Mientras estamos conectados, recorremos y/o
modificamos datos de nuestro Recordset los cuales
se actualizan en nuestras Bases de Datos.
Cerramos la Conexión.
En ADO.NET la cosa cambia y bastante… veamos.
Creamos un Objeto SqlClient.SqlConnection (Para
SQL Server) o un Odbc.OdbcConnection (Para Clientes
ODBC) o OleDb.OleDbConnection (Para Clientes OleDB)
Creamos un Objeto SQLDataAdapter o como
corresponda SQL, ODBC u OLEDB (Luego detallaré la
función de cada componente).
Creamos un Objeto Dataset el cual se llenará
gracias a una instrucción del DataAdapter.
El DataSet a diferencia del Recordset, puede
contener multiples elementos DataTables o sea
TABLAS.
Inmediatamente posterior al llenado del DataSet,
la conexión con la BD se cierra. Y se trabaja con
los datos de modo desconectado.
Una vez que necesitemos actualizar los datos en
nuestras BD el DataAdapter (que no es mas que una
aplicación de Interfase) reabre la conexión
automáticamente y vuelca los cambios.
Se cierra la conexión definitivamente.
En base a lo que hemos expresado, quedan
innumerables cuestiones que aclarar y muchos
misterios por develar.
Intentaré explicarlo de la manera mas clara como
me sea posible.
CONNECTION
Ya no existe en ADO.NET un simple objeto
Connection al cual se le indicaba el proveedor de
SQL SERVER , o alguno de ODBC u OLEDB. Ahora existe
un Objeto Connection para cada una de estas
variantes.
SQLClient.SQLConnection (SQL Server)
ODBCClient.ODBCConnection (ODBC)
OLEDBClient.OLEDBConnection (OLEDB)
Tanto SQLClient, como ODBCClient, como OLEDBClient,
son colecciones que contienen muchísimos métodos y
propiedades inherentes a cada tipo de conexión en
particular.
La sintaxis general es la siguiente…
Private _SqlConexion As
Data.SqlClient.SqlConnection
_SqlConexion = New SqlClient.SqlConnection
_SqlConexion.ConnectionString = ConexionStr
_SqlConexion.Open()
DATAADAPTER
El DataAdapter es uno de los participes necesarios
mas importantes en este nuevo paradigma. Es ni mas
ni menos que el que hace todo entre la conexión y
el DataSet, se encarga de conectar y desconectar
los datos, de llevar la información al DataSet y el
de controlar cualquier tipo de inconsistencia entre
los datos leidos y los reales a la hora de
actualizar. Y lo mas importante… todo eso lo hace
solapadamente sin que el usuario deba preocuparse.
La sintaxis general es la siguiente….
Private _SqlDataAdap As
Data.SqlClient.SqlDataAdapter
Private _Dataset As Data.DataSet
_Dataset = New Data.DataSet
_SqlConexion = New SqlClient.SqlConnection
_SqlConexion.ConnectionString = ConexionStr
_SqlConexion.Open()
_SqlDataAdap = New SqlClient.SqlDataAdapter(“Select
* from clientes”,_SqlConexion)
_SqlDataAdap.Fill(_Dataset)
Como vemos en el código Ejemplo.. en el mismo
DataAdapter ejecutamos el comando y luego mediante
el método FILL le adicionamos una DataTABLE a
nuestro DataSet.
En caso de necesitar que un DataSet contenga
multiples DataTables deberemos crear distintos
Objetos DataAdapter y todos colgados de la misma
conexión y todos llenando mediante el método FILL
al mismo DataSet.
Cuando EDITAMOS, ADICIONAMOS, BORRAMOS o UPDATEAMOS
datos de nuestros DataSets, en el momento en que
indicamos al ADO.NET que queremos actualizar los
cambios o novedades, el DataAdapter ReConecta a la
BD y compara los valores leidos originalmente con
los que encuentra en ese momento… de haber
cambios.. asume que algun usuario ha modificado los
datos mientras nosotros estabamos desconectados, y
nos devuelve un error manejable para que decidamos
que hacer.
DATASET
El DataSet será nuestro Objeto Estrella… Todo lo
haremos ahí, y tiene una arquitectura y una
filosofia muy distinta a los viejos RecordSets.
Por empezar.. puede contener varias tablas
resultantes de multiples consultas.. Cada una de
esas tablas se denomina DataTable.
DataSet
à DataTable(0)
à DataTable(1)
La manera de Recorrer cada DataTable es la misma en
la que recorremos una GRILLA, y no existe el
concepto de EOF o BOF
No existen Registros sino ROWS y pueden recorrerse
con un simple FOR NEXT o con un FOR EACH.
Ejemplo..
Recorrer
For i = 0 to MyDataSet.DataTable(0).Rows.Count -1
Messagebox.show MyDataSet.DataTable(0).rows(i)(“NombreCliente”)
Next
Como verán no existe el RECORDCOUNT !!! simplemente
le pedimos la cantidad de Rows, al igual que una
Grilla.
Asignar
autores.Rows(0).BeginEdit()
autores.Rows(0)("au_lname") = "Negro"
autores.Rows(0).EndEdit()
'hasta aquí modifique localmente
'Update manda los cambios a la base
da1.Update(ds, "authors")
Esta es una simple muestra del potencial de ADO.NET
e incorpora la filosofia de trabajar desconectados
de la BD lo que evita errores y sobrecarga en el
motor de BD, imaginen 100.000 usuarios en una
página web accediendo concurrentemente a la misma
Tabla.. Imposible hacer si no se desconectan
automáticamente.
ADO.NET es muchísimo mas de lo que acabo de
mostrar.. de hecho.. dudo de que haya mostrado el 1
% de su estructura, Pero nos da un pequeño
acercamiento a su estructura y sintaxis.

Nombre
Pablo
Gustavo Tilotta
Ubicación
Buenos Aires - Argentina
Si quieres
conocer más sobre Chiaravel haz clic
aquí
Si quieres acceder a nuestros foros haz clic
aquí
|
|
 |
| Explosión
de Dinero (El segundo libro de Javier Buckenmeyer) |
Descubre
el libro que esta cambiando la forma de ver a los sitios web. Descubre
como optimizar tu sitio de forma de obtener así gran cantidad de
ingresos desde Google AdSense.
Escrito por Javier Buckenmeyer (SEO de VB-MUNDO) y traductor
del libro "Secretos de ADSense".
El manual explica todo lo que hay que saber antes de hacer una
página Web con AdSense. Mi libro te explica cómo se gana dinero con
AdSense desde el principio (No después de horas y horas de trabajo
cuando ya es demasiado tarde y hay que empezar de nuevo).
|
|
ver detalles... |
|
Descarga
desde nuestra exclusiva sección de códigos fuente, todas las
aplicaciones que desees y utiliza ese código en tus aplicaciones
para dotarlas de la mayor versatilidad posible.
Envianos tu propios códigos a
aportes@vb-mundo.com |
|
ver códigos... |
|
Accede
a nuestra sección de Notas Técnicas, escritas por nuestro Staff y
por otros prestigiosos colaboradores. Notas sobre informática en
General, VB.NET, C#, y Hardware. Conviertete tu también en NOTERO de
VB-MUNDO y gánate tu propia sección y un link (no reciproco) hasta
tu sitio web. Deseas escribir para nosotros ?
Envianos tus notas a
foro @ vb-mundo.com |
|
ver sección de notas... |